<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts: posix/posix.c Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts
   &#160;<span id="projectnumber">1.0</span>
   </div>
   <div id="projectbrief">ESP8266ILI9341DisplayProject</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_201f8e026df3a06f760b6173e807b6b9.html">posix</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">posix.c</div>  </div>
</div><!--header-->
<div class="contents">
<a href="posix_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="user__config_8h.html">user_config.h</a>&quot;</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="stringsup_8h.html">stringsup.h</a>&quot;</span></div><div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="fatfs_8h.html">fatfs.h</a>&quot;</span></div><div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="posix_8h.html">posix.h</a>&quot;</span></div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#ifdef ESP8266</span></div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="comment">// FIXME ESP8266 library conflict</span></div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#undef strerror_r</span></div><div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">  129</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a>;</div><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="posix_8h.html#aae2f027325f7e73c3aa5e7dc990bd90d">  139</a></span>&#160;<a class="code" href="struct____file.html">FILE</a> *<a class="code" href="posix_8c.html#aae2f027325f7e73c3aa5e7dc990bd90d">__iob</a>[<a class="code" href="posix_8h.html#a2c5eecb22513a88c24ae5831a3265e54">MAX_FILES</a>];</div><div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="posix_8c.html#a76ebfe24a40210e5935998c1fa86d3a0">  144</a></span>&#160;<span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="posix_8c.html#a76ebfe24a40210e5935998c1fa86d3a0">sys_errlist</a>[] =</div><div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;{</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;    <span class="stringliteral">&quot;OK&quot;</span>,</div><div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;    <span class="stringliteral">&quot;Operation not permitted&quot;</span>,</div><div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="stringliteral">&quot;No such file or directory&quot;</span>,</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    <span class="stringliteral">&quot;No such process&quot;</span>,</div><div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;    <span class="stringliteral">&quot;Interrupted system call&quot;</span>,</div><div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="stringliteral">&quot;I/O error&quot;</span>,</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    <span class="stringliteral">&quot;No such device or address&quot;</span>,</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    <span class="stringliteral">&quot;Argument list too long&quot;</span>,</div><div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    <span class="stringliteral">&quot;Exec format error&quot;</span>,</div><div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <span class="stringliteral">&quot;Bad file number&quot;</span>,</div><div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="stringliteral">&quot;No child processes&quot;</span>,</div><div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="stringliteral">&quot;Try again&quot;</span>,</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="stringliteral">&quot;Out of memory&quot;</span>,</div><div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="stringliteral">&quot;Permission denied&quot;</span>,</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;    <span class="stringliteral">&quot;Bad address&quot;</span>,</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="stringliteral">&quot;Block device required&quot;</span>,</div><div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="stringliteral">&quot;Device or resource busy&quot;</span>,</div><div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="stringliteral">&quot;File exists&quot;</span>,</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    <span class="stringliteral">&quot;Cross-device link&quot;</span>,</div><div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="stringliteral">&quot;No such device&quot;</span>,</div><div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="stringliteral">&quot;Not a directory&quot;</span>,</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="stringliteral">&quot;Is a directory&quot;</span>,</div><div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="stringliteral">&quot;Invalid argument&quot;</span>,</div><div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;    <span class="stringliteral">&quot;File table overflow&quot;</span>,</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    <span class="stringliteral">&quot;Too many open files&quot;</span>,</div><div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="stringliteral">&quot;Not a typewriter&quot;</span>,</div><div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;    <span class="stringliteral">&quot;Text file busy&quot;</span>,</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;    <span class="stringliteral">&quot;File too large&quot;</span>,</div><div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;    <span class="stringliteral">&quot;No space left on device&quot;</span>,</div><div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;    <span class="stringliteral">&quot;Illegal seek&quot;</span>,</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;    <span class="stringliteral">&quot;Read-only file system&quot;</span>,</div><div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="stringliteral">&quot;Too many links&quot;</span>,</div><div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;    <span class="stringliteral">&quot;Broken pipe&quot;</span>,</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;    <span class="stringliteral">&quot;Math argument out of domain of func&quot;</span>,</div><div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;    <span class="stringliteral">&quot;Math result not representable&quot;</span>,</div><div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;    <span class="stringliteral">&quot;Bad Message&quot;</span>,</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;    <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a></div><div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;};</div><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;<span class="comment"></span><a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="posix_8h.html#a31986cce890109c211ccb14151aafd0e">  196</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>(<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>)</div><div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    <span class="keywordflow">if</span>(fileno &gt;= 0 &amp;&amp; fileno &lt;= 2)</div><div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;}</div><div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="posix_8h.html#a1d2fa24415329171e6765ed5309b6edd">  216</a></span>&#160;<a class="code" href="posix_8c.html#a1d2fa24415329171e6765ed5309b6edd">fgetc</a>(<a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;{</div><div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;    <span class="keywordtype">int</span> c;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    {</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;                            <span class="comment">// Bad File Number</span></div><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    }</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="preprocessor">#ifdef ESP8266</span></div><div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    <a class="code" href="user__task_8c.html#a863d8bc03e69f2efee6042bcec7b456b">optimistic_yield</a>(1000);</div><div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    <a class="code" href="system_8c.html#a9b9f170e9a01e51b57656fcda1f183df">wdt_reset</a>();</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;    <span class="keywordflow">if</span> ((stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#a9a9bfdbe4548d021af62fb947d2b6b82">__SRD</a>) == 0)</div><div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="keywordflow">if</span> ((stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#ad541703cea6b378290dcf2ea448d2879">__SUNGET</a>) != 0) {</div><div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp;= ~<a class="code" href="posix_8h.html#ad541703cea6b378290dcf2ea448d2879">__SUNGET</a>;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a30309efd13a75ed510bb2370debafaf8">len</a>++;</div><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;        <span class="keywordflow">return</span> stream-&gt;<a class="code" href="struct____file.html#a1d139ae3cb11a1fada469a49f7d3d3b6">unget</a>;</div><div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    }</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    <span class="keywordflow">if</span> (stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#a7934343459dfe68ced51599a7b9a316f">__SSTR</a>) {</div><div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;        c = *stream-&gt;<a class="code" href="struct____file.html#a3e5a85ae919a90efbb7cb44ccb54fe46">buf</a>;</div><div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;        <span class="keywordflow">if</span> (c == <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;            stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= <a class="code" href="posix_8h.html#a63f42c2888ed9bd0f00ee25002ee3b02">__SEOF</a>;</div><div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>;</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;        } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;            stream-&gt;<a class="code" href="struct____file.html#a3e5a85ae919a90efbb7cb44ccb54fe46">buf</a>++;</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        }</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;        <span class="keywordflow">if</span>(!stream-&gt;<a class="code" href="struct____file.html#a2d816b077c3af0425344fe4b283dad33">get</a>)</div><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;        {</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;            <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;fgetc stream-&gt;get NULL\n&quot;</span>);</div><div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;        }</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;        <span class="comment">// get character from device or file</span></div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;        c = stream-&gt;<a class="code" href="struct____file.html#a2d816b077c3af0425344fe4b283dad33">get</a>(stream);</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;        <span class="keywordflow">if</span> (c &lt; 0) {</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;            <span class="comment">/* if != _FDEV_ERR, assume its _FDEV_EOF */</span></div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;            stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= (c == <a class="code" href="posix_8h.html#a132917c782a0ba854c3ae9abe57c3b12">_FDEV_ERR</a>)? <a class="code" href="posix_8h.html#a37117409538ffeec47002d6580e4b703">__SERR</a>: <a class="code" href="posix_8h.html#a63f42c2888ed9bd0f00ee25002ee3b02">__SEOF</a>;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;            <span class="keywordflow">return</span> <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>;</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;        }</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;    }</div><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;    stream-&gt;<a class="code" href="struct____file.html#a30309efd13a75ed510bb2370debafaf8">len</a>++;</div><div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;    <span class="keywordflow">return</span> (c);</div><div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;}</div><div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="posix_8h.html#a6bdef0a37397953c3b0f14c4d5d0eb10">  278</a></span>&#160;<a class="code" href="posix_8c.html#a6bdef0a37397953c3b0f14c4d5d0eb10">fputc</a>(<span class="keywordtype">int</span> c, <a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;{</div><div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;    <span class="keywordtype">int</span> ret;</div><div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    {</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;                            <span class="comment">// Bad File Number</span></div><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    }</div><div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;<span class="preprocessor">#ifdef ESP8266</span></div><div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;    <a class="code" href="user__task_8c.html#a863d8bc03e69f2efee6042bcec7b456b">optimistic_yield</a>(1000);</div><div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    <a class="code" href="system_8c.html#a9b9f170e9a01e51b57656fcda1f183df">wdt_reset</a>();</div><div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <span class="keywordflow">if</span>(stream != <a class="code" href="posix_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a> &amp;&amp; stream != <a class="code" href="posix_8h.html#a5ce35bd5ba5021fd3b2e951e8f497656">stderr</a>)</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    {</div><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8c.html#adfd015ed8dbac3473269d1a068bf5904">fatfs_putc</a>(c,stream));</div><div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    }</div><div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;    <span class="comment">// TTY outputs</span></div><div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno">  301</span>&#160;    <span class="keywordflow">if</span> ((stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#af08f227b04a8833c49ce8b798ca7f403">__SWR</a>) == 0)</div><div class="line"><a name="l00302"></a><span class="lineno">  302</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>;</div><div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    <span class="keywordflow">if</span> (stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#a7934343459dfe68ced51599a7b9a316f">__SSTR</a>) {</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;        <span class="keywordflow">if</span> (stream-&gt;<a class="code" href="struct____file.html#a30309efd13a75ed510bb2370debafaf8">len</a> &lt; stream-&gt;<a class="code" href="struct____file.html#aff4a1ca8b6a12460812928afae81248d">size</a>)</div><div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;            *stream-&gt;<a class="code" href="struct____file.html#a3e5a85ae919a90efbb7cb44ccb54fe46">buf</a>++ = c;</div><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a30309efd13a75ed510bb2370debafaf8">len</a>++;</div><div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="keywordflow">return</span> c;</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;        <span class="keywordflow">if</span>(!stream-&gt;<a class="code" href="struct____file.html#a01c8b217e42cc11b6a7f8429114e9d46">put</a>)</div><div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;        {</div><div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;            <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;fputc stream-&gt;put NULL\n&quot;</span>);</div><div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;        }</div><div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;        ret = stream-&gt;<a class="code" href="struct____file.html#a01c8b217e42cc11b6a7f8429114e9d46">put</a>(c, stream);</div><div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;        <span class="keywordflow">if</span>(ret != <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>)</div><div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;            stream-&gt;<a class="code" href="struct____file.html#a30309efd13a75ed510bb2370debafaf8">len</a>++;</div><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;        <span class="keywordflow">return</span>(ret);</div><div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    }</div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;}</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="preprocessor">#ifndef IO_MACROS</span></div><div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00336"></a><span class="lineno"><a class="line" href="posix_8h.html#ab38efc888190556f106cafb08d17d16f">  336</a></span>&#160;<a class="code" href="posix_8c.html#a65ef3ba32c47b84f7727e36de68ef86c">getchar</a>()</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;{</div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="posix_8c.html#a1d2fa24415329171e6765ed5309b6edd">fgetc</a>(<a class="code" href="posix_8h.html#aaca70138f0cb63ddb026921afc635179">stdin</a>));</div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;}</div><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00351"></a><span class="lineno"><a class="line" href="posix_8h.html#ac9195b3de02e450cfdeea1ce97b32da4">  351</a></span>&#160;<a class="code" href="posix_8c.html#ac9195b3de02e450cfdeea1ce97b32da4">putchar</a>(<span class="keywordtype">int</span> c)</div><div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;{</div><div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="posix_8c.html#a6bdef0a37397953c3b0f14c4d5d0eb10">fputc</a>(c,<a class="code" href="posix_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a>));</div><div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;}</div><div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="posix_8h.html#af979e8f6598be71d68be7cc49a41626b">  368</a></span>&#160;<a class="code" href="posix_8c.html#af979e8f6598be71d68be7cc49a41626b">ungetc</a>(<span class="keywordtype">int</span> c, <a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;{</div><div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    <span class="keywordtype">int</span> fd = <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>(stream);</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="keywordflow">if</span>(!<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>(fd))</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    <span class="keywordflow">if</span>(c == <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>)</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>;</div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <span class="keywordflow">if</span>((stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#ad541703cea6b378290dcf2ea448d2879">__SUNGET</a>) != 0 )</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;    <span class="keywordflow">if</span> ((stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#a9a9bfdbe4548d021af62fb947d2b6b82">__SRD</a>) == 0 )</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= <a class="code" href="posix_8h.html#ad541703cea6b378290dcf2ea448d2879">__SUNGET</a>;</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;    stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp;= ~<a class="code" href="posix_8h.html#a63f42c2888ed9bd0f00ee25002ee3b02">__SEOF</a>;</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;    stream-&gt;<a class="code" href="struct____file.html#a1d139ae3cb11a1fada469a49f7d3d3b6">unget</a> = c;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    stream-&gt;<a class="code" href="struct____file.html#a30309efd13a75ed510bb2370debafaf8">len</a>--;</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;    <span class="keywordflow">return</span> (c);</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;}</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;<span class="preprocessor">#ifndef IO_MACROS</span></div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;<span class="comment"></span><a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="posix_8h.html#ae59fd612372df957f59fb3cdcbd8b9e9">  401</a></span>&#160;<a class="code" href="posix_8c.html#ae59fd612372df957f59fb3cdcbd8b9e9">putc</a>(<span class="keywordtype">int</span> c, <a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;{</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;    <span class="keywordflow">return</span>(<a class="code" href="posix_8c.html#a6bdef0a37397953c3b0f14c4d5d0eb10">fputc</a>(c, stream));</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;}</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="comment"></span><a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;<span class="keywordtype">char</span> *</div><div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="posix_8h.html#a3759827e157badd49d076bd157f508d9">  420</a></span>&#160;<a class="code" href="posix_8c.html#a3759827e157badd49d076bd157f508d9">fgets</a>(<span class="keywordtype">char</span> *str, <span class="keywordtype">int</span> size, <a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;{</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;    <span class="keywordtype">int</span> c;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="ili9341_8c.html#a4b00721003b8d35559a55c9098ff36c5">ind</a> = 0;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    <span class="keywordflow">while</span>(size--)</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    {</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;        c = <a class="code" href="posix_8c.html#a1d2fa24415329171e6765ed5309b6edd">fgetc</a>(stream);</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        <span class="keywordflow">if</span>(c == <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>)</div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;        {</div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;            <span class="keywordflow">if</span>( ind == 0)</div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;                <span class="keywordflow">return</span>(<a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160;        }</div><div class="line"><a name="l00433"></a><span class="lineno">  433</span>&#160;        <span class="keywordflow">if</span>(c == <span class="charliteral">&#39;\n&#39;</span>)</div><div class="line"><a name="l00434"></a><span class="lineno">  434</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160;        <span class="keywordflow">if</span>(c == 0x08)</div><div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160;        {</div><div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160;             <span class="keywordflow">if</span>(ind &gt; 0)</div><div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160;                --<a class="code" href="ili9341_8c.html#a4b00721003b8d35559a55c9098ff36c5">ind</a>;</div><div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;        }</div><div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;        str[ind++] = c;</div><div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;    }</div><div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;    str[<a class="code" href="ili9341_8c.html#a4b00721003b8d35559a55c9098ff36c5">ind</a>] = 0;</div><div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;    <span class="keywordflow">return</span>(str);</div><div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;}</div><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="posix_8h.html#a30a4070a8b1719d53cb01dd4b2a65069">  457</a></span>&#160;<a class="code" href="posix_8c.html#a30a4070a8b1719d53cb01dd4b2a65069">fputs</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, <a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;{</div><div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;    <span class="keywordflow">while</span>(*str)</div><div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;    {</div><div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a6bdef0a37397953c3b0f14c4d5d0eb10">fputc</a>(*str, stream) == <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>)</div><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;        ++str;</div><div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;    }</div><div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;}</div><div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;<span class="preprocessor">#ifndef IO_MACROS</span></div><div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="posix_8h.html#aa360dd5203b246757abc21253ed8eb2e">  480</a></span>&#160;<a class="code" href="posix_8c.html#aa360dd5203b246757abc21253ed8eb2e">puts</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str)</div><div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;{</div><div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;    <span class="keywordflow">while</span>(*str)</div><div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;    {</div><div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a6bdef0a37397953c3b0f14c4d5d0eb10">fputc</a>(*str, <a class="code" href="posix_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a>) == <a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>)</div><div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;        ++str;</div><div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;    }</div><div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;    <span class="keywordflow">return</span> ( <a class="code" href="posix_8c.html#a6bdef0a37397953c3b0f14c4d5d0eb10">fputc</a>(<span class="charliteral">&#39;\n&#39;</span>,<a class="code" href="posix_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a>) );</div><div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;}</div><div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;</div><div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;<span class="comment"></span><span class="comment">// =============================================</span></div><div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160;<span class="comment"></span><a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="posix_8h.html#af98213e7457dbe734d81d34758d2b505">  505</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#af98213e7457dbe734d81d34758d2b505">feof</a>(<a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160;{</div><div class="line"><a name="l00507"></a><span class="lineno">  507</span>&#160;    <span class="keywordflow">if</span>(stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#a63f42c2888ed9bd0f00ee25002ee3b02">__SEOF</a>)</div><div class="line"><a name="l00508"></a><span class="lineno">  508</span>&#160;        <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;}</div><div class="line"><a name="l00511"></a><span class="lineno">  511</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="posix_8h.html#acb9e5741c01183dfe3179d646b264e5b">  522</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#acb9e5741c01183dfe3179d646b264e5b">fgetpos</a>(<a class="code" href="struct____file.html">FILE</a> *stream, <span class="keywordtype">size_t</span> *pos)</div><div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160;{</div><div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;    <span class="keywordtype">long</span> offset = <a class="code" href="posix_8c.html#af53dca187c78408fe2f1958c4eb88603">ftell</a>(stream);</div><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;    *pos = offset;</div><div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;    <span class="keywordflow">if</span>(offset == -1)</div><div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;    <span class="keywordflow">return</span>( 0 );</div><div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;}</div><div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno">  544</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="posix_8h.html#ad31144743f0014784193221563ca8dd2">  545</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#ad31144743f0014784193221563ca8dd2">fseek</a>(<a class="code" href="struct____file.html">FILE</a> *stream, <span class="keywordtype">long</span> offset, <span class="keywordtype">int</span> whence)</div><div class="line"><a name="l00546"></a><span class="lineno">  546</span>&#160;{</div><div class="line"><a name="l00547"></a><span class="lineno">  547</span>&#160;    <span class="keywordtype">long</span> ret;</div><div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;    <span class="keywordtype">int</span> fn = <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>(stream);</div><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    <span class="keywordflow">if</span>(fn &lt; 0)</div><div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;    ret  = <a class="code" href="posix_8c.html#abb875e56516d235a6aaf69951444cc63">lseek</a>(fn, offset, whence);</div><div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    <span class="keywordflow">if</span>(ret == -1)</div><div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;}</div><div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="posix_8h.html#a8705d74fe77c1b23824074ecd14be1c7">  571</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a8705d74fe77c1b23824074ecd14be1c7">fsetpos</a>(<a class="code" href="struct____file.html">FILE</a> *stream, <span class="keywordtype">size_t</span> *pos)</div><div class="line"><a name="l00572"></a><span class="lineno">  572</span>&#160;{</div><div class="line"><a name="l00573"></a><span class="lineno">  573</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="posix_8c.html#ad31144743f0014784193221563ca8dd2">fseek</a>(stream, (<span class="keywordtype">size_t</span>) *pos, <a class="code" href="posix_8h.html#a0d112bae8fd35be772185b6ec6bcbe64">SEEK_SET</a>) );</div><div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160;}</div><div class="line"><a name="l00575"></a><span class="lineno">  575</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="posix_8h.html#af53dca187c78408fe2f1958c4eb88603">  585</a></span>&#160;<span class="keywordtype">long</span> <a class="code" href="posix_8c.html#af53dca187c78408fe2f1958c4eb88603">ftell</a>(<a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160;{</div><div class="line"><a name="l00587"></a><span class="lineno">  587</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l00588"></a><span class="lineno">  588</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno">  589</span>&#160;    <span class="keywordtype">int</span> fn = <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>(stream);</div><div class="line"><a name="l00590"></a><span class="lineno">  590</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>(fn))</div><div class="line"><a name="l00591"></a><span class="lineno">  591</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00592"></a><span class="lineno">  592</span>&#160;    <span class="comment">// fileno_to_fatfs checks for fd out of bounds</span></div><div class="line"><a name="l00593"></a><span class="lineno">  593</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh = <a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(fn);</div><div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160;    <span class="keywordflow">if</span> ( fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> )</div><div class="line"><a name="l00595"></a><span class="lineno">  595</span>&#160;    {</div><div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l00597"></a><span class="lineno">  597</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00598"></a><span class="lineno">  598</span>&#160;    }</div><div class="line"><a name="l00599"></a><span class="lineno">  599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno">  600</span>&#160;    <span class="keywordflow">return</span>( fh-&gt;<a class="code" href="structFIL.html#a088b03ab2e02f82e10e17bdd938190a6">fptr</a> );</div><div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;}</div><div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00617"></a><span class="lineno"><a class="line" href="posix_8h.html#abb875e56516d235a6aaf69951444cc63">  617</a></span>&#160;<a class="code" href="posix_8h.html#aac46e03c2018bada012333c31f41df12">off_t</a> <a class="code" href="posix_8c.html#abb875e56516d235a6aaf69951444cc63">lseek</a>(<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>, <a class="code" href="posix_8h.html#aac46e03c2018bada012333c31f41df12">off_t</a> position, <span class="keywordtype">int</span> whence)</div><div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;{</div><div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;    <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44c">FRESULT</a> res;</div><div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;    <span class="comment">// fileno_to_fatfs checks for fd out of bounds</span></div><div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;    fh = <a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(fileno);</div><div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160;    <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00628"></a><span class="lineno">  628</span>&#160;    {</div><div class="line"><a name="l00629"></a><span class="lineno">  629</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa0191be5a8b35e30991789c9fe4b2c4cf">EMFILE</a>;</div><div class="line"><a name="l00630"></a><span class="lineno">  630</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00631"></a><span class="lineno">  631</span>&#160;    }</div><div class="line"><a name="l00632"></a><span class="lineno">  632</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>(fileno))</div><div class="line"><a name="l00633"></a><span class="lineno">  633</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00634"></a><span class="lineno">  634</span>&#160;    </div><div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;</div><div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;    stream = <a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(fileno);</div><div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;    stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= <a class="code" href="posix_8h.html#ad541703cea6b378290dcf2ea448d2879">__SUNGET</a>;</div><div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;    <span class="keywordflow">if</span>(whence == <a class="code" href="posix_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8">SEEK_END</a>)</div><div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;        position += <a class="code" href="ff_8h.html#a26f33722c5bf1aa3cd6f0290a83eb2bc">f_size</a>(fh);</div><div class="line"><a name="l00641"></a><span class="lineno">  641</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span>(whence==<a class="code" href="posix_8h.html#a4c8d0b76b470ba65a43ca46a88320f39">SEEK_CUR</a>)</div><div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;        position += fh-&gt;<a class="code" href="structFIL.html#a088b03ab2e02f82e10e17bdd938190a6">fptr</a>;</div><div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160;    res = <a class="code" href="ff_8c.html#a1ade4a85f88359e47c474a5436cc20fa">f_lseek</a>(fh, position);</div><div class="line"><a name="l00645"></a><span class="lineno">  645</span>&#160;    <span class="keywordflow">if</span>(res)</div><div class="line"><a name="l00646"></a><span class="lineno">  646</span>&#160;    {</div><div class="line"><a name="l00647"></a><span class="lineno">  647</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l00648"></a><span class="lineno">  648</span>&#160;        <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00649"></a><span class="lineno">  649</span>&#160;    }</div><div class="line"><a name="l00650"></a><span class="lineno">  650</span>&#160;    <span class="keywordflow">if</span>(position != <a class="code" href="ff_8h.html#a5e1daca7ce13cdc277e42185f7f9124f">f_tell</a>(fh) )</div><div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;    {</div><div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160;        <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;Seek failed&quot;</span>);</div><div class="line"><a name="l00653"></a><span class="lineno">  653</span>&#160;        <span class="keywordflow">return</span>(-1<a class="code" href="cal__dex_8c.html#a7577d49f3bfffb1cf048eef843177784">L</a>);</div><div class="line"><a name="l00654"></a><span class="lineno">  654</span>&#160;    }</div><div class="line"><a name="l00655"></a><span class="lineno">  655</span>&#160;    <span class="keywordflow">return</span> (fh-&gt;<a class="code" href="structFIL.html#a088b03ab2e02f82e10e17bdd938190a6">fptr</a>);</div><div class="line"><a name="l00656"></a><span class="lineno">  656</span>&#160;}</div><div class="line"><a name="l00657"></a><span class="lineno">  657</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno">  665</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="posix_8h.html#a35e6a58f44d4651951ecfeb97f369884">  666</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="posix_8c.html#a35e6a58f44d4651951ecfeb97f369884">rewind</a>( <a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00667"></a><span class="lineno">  667</span>&#160;{</div><div class="line"><a name="l00668"></a><span class="lineno">  668</span>&#160;    <a class="code" href="posix_8c.html#ad31144743f0014784193221563ca8dd2">fseek</a>(stream, 0<a class="code" href="cal__dex_8c.html#a7577d49f3bfffb1cf048eef843177784">L</a>, <a class="code" href="posix_8h.html#a0d112bae8fd35be772185b6ec6bcbe64">SEEK_SET</a>);</div><div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;}</div><div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno">  671</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l00672"></a><span class="lineno">  672</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l00674"></a><span class="lineno">  674</span>&#160;<span class="comment"></span><span class="comment">// =============================================</span></div><div class="line"><a name="l00675"></a><span class="lineno">  675</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l00684"></a><span class="lineno">  684</span>&#160;<span class="comment"></span><a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="posix_8h.html#a48dc1df1627501d3faed4bf1f9801759">  685</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a48dc1df1627501d3faed4bf1f9801759">close</a>(<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>)</div><div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;{</div><div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l00690"></a><span class="lineno">  690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno">  691</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l00692"></a><span class="lineno">  692</span>&#160;</div><div class="line"><a name="l00693"></a><span class="lineno">  693</span>&#160;    <span class="comment">// checks if fileno out of bounds</span></div><div class="line"><a name="l00694"></a><span class="lineno">  694</span>&#160;    stream = <a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(fileno);</div><div class="line"><a name="l00695"></a><span class="lineno">  695</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;    {</div><div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00698"></a><span class="lineno">  698</span>&#160;    }</div><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;    <span class="comment">// fileno_to_fatfs checks for fileno out of bounds</span></div><div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;    fh = <a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(fileno);</div><div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;    <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;    {</div><div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160;    }</div><div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;    res = <a class="code" href="ff_8c.html#adab02d5c0e368f7d131ef7d7d2676c7a">f_close</a>(fh);</div><div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    <a class="code" href="posix_8c.html#a38496612f759733234128893e4c60a89">free_file_descriptor</a>(fileno);</div><div class="line"><a name="l00708"></a><span class="lineno">  708</span>&#160;    <span class="keywordflow">if</span> (res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l00709"></a><span class="lineno">  709</span>&#160;    {</div><div class="line"><a name="l00710"></a><span class="lineno">  710</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l00711"></a><span class="lineno">  711</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;    }</div><div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l00714"></a><span class="lineno">  714</span>&#160;}</div><div class="line"><a name="l00715"></a><span class="lineno">  715</span>&#160;</div><div class="line"><a name="l00723"></a><span class="lineno">  723</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00724"></a><span class="lineno"><a class="line" href="posix_8h.html#aceb657a1b3c10d576aed287714bfd5d1">  724</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>(<a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00725"></a><span class="lineno">  725</span>&#160;{</div><div class="line"><a name="l00726"></a><span class="lineno">  726</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>;</div><div class="line"><a name="l00727"></a><span class="lineno">  727</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno">  728</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00729"></a><span class="lineno">  729</span>&#160;    {</div><div class="line"><a name="l00730"></a><span class="lineno">  730</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l00731"></a><span class="lineno">  731</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;    }</div><div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160;</div><div class="line"><a name="l00734"></a><span class="lineno">  734</span>&#160;    <span class="keywordflow">for</span>(fileno=0; fileno&lt;<a class="code" href="posix_8h.html#a2c5eecb22513a88c24ae5831a3265e54">MAX_FILES</a>; ++<a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>)</div><div class="line"><a name="l00735"></a><span class="lineno">  735</span>&#160;    {</div><div class="line"><a name="l00736"></a><span class="lineno">  736</span>&#160;        <span class="keywordflow">if</span> ( __iob[fileno] == stream)</div><div class="line"><a name="l00737"></a><span class="lineno">  737</span>&#160;            <span class="keywordflow">return</span>(fileno);</div><div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;    }</div><div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160;    <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00740"></a><span class="lineno">  740</span>&#160;}</div><div class="line"><a name="l00741"></a><span class="lineno">  741</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno">  753</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="posix_8h.html#a2c01fe0e0aa550b2a8b4dcc326983b57">  754</a></span>&#160;<a class="code" href="struct____file.html">FILE</a> *<a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>)</div><div class="line"><a name="l00755"></a><span class="lineno">  755</span>&#160;{</div><div class="line"><a name="l00756"></a><span class="lineno">  756</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l00757"></a><span class="lineno">  757</span>&#160;    <span class="keywordflow">if</span>(fileno &lt; 0 || fileno &gt;= <a class="code" href="posix_8h.html#a2c5eecb22513a88c24ae5831a3265e54">MAX_FILES</a>)</div><div class="line"><a name="l00758"></a><span class="lineno">  758</span>&#160;    {</div><div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l00761"></a><span class="lineno">  761</span>&#160;    }</div><div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160;    stream = __iob[<a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>];</div><div class="line"><a name="l00764"></a><span class="lineno">  764</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00765"></a><span class="lineno">  765</span>&#160;    {</div><div class="line"><a name="l00766"></a><span class="lineno">  766</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l00767"></a><span class="lineno">  767</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l00768"></a><span class="lineno">  768</span>&#160;    }</div><div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;    <span class="keywordflow">return</span>(stream);</div><div class="line"><a name="l00770"></a><span class="lineno">  770</span>&#160;}</div><div class="line"><a name="l00771"></a><span class="lineno">  771</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="posix_8h.html#a8e661c338f41695d1a1e70aed6255e2d">  782</a></span>&#160;<a class="code" href="struct____file.html">FILE</a> *<a class="code" href="posix_8c.html#a8e661c338f41695d1a1e70aed6255e2d">fopen</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <span class="keyword">const</span> <span class="keywordtype">char</span> *mode)</div><div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160;{</div><div class="line"><a name="l00784"></a><span class="lineno">  784</span>&#160;    <span class="keywordtype">int</span> flags = <a class="code" href="posix_8c.html#a607feb06d296e0ff60d5a19538bd17fc">posix_fopen_modes_to_open</a>(mode);</div><div class="line"><a name="l00785"></a><span class="lineno">  785</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a> = <a class="code" href="posix_8c.html#a3e5e6f96d36b5cdacfaf6b3976cd5af2">open</a>(path, flags);</div><div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;</div><div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;    <span class="comment">// checks if fileno out of bounds</span></div><div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160;    <span class="keywordflow">return</span>( <a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(fileno) );</div><div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;}</div><div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00803"></a><span class="lineno"><a class="line" href="posix_8h.html#a01233ac8fd574e20b0b38472adbee551">  803</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="posix_8c.html#a01233ac8fd574e20b0b38472adbee551">fread</a>(<span class="keywordtype">void</span> *ptr, <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> nmemb, <a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;{</div><div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160;    <span class="keywordtype">size_t</span> count = size * nmemb;</div><div class="line"><a name="l00806"></a><span class="lineno">  806</span>&#160;    <span class="keywordtype">int</span> fn = <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>(stream);</div><div class="line"><a name="l00807"></a><span class="lineno">  807</span>&#160;    <a class="code" href="posix_8h.html#a170745d0d946e79c4c2a056d1d158996">ssize_t</a> ret;</div><div class="line"><a name="l00808"></a><span class="lineno">  808</span>&#160;</div><div class="line"><a name="l00809"></a><span class="lineno">  809</span>&#160;    <span class="comment">// read() checks for fn out of bounds</span></div><div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;    ret = <a class="code" href="posix_8c.html#af104a2c05bef787e54c6925616e867df">read</a>(fn, ptr, count);</div><div class="line"><a name="l00811"></a><span class="lineno">  811</span>&#160;    <span class="keywordflow">if</span>(ret &lt; 0)</div><div class="line"><a name="l00812"></a><span class="lineno">  812</span>&#160;        <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l00813"></a><span class="lineno">  813</span>&#160;</div><div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;    <span class="keywordflow">return</span>((<span class="keywordtype">size_t</span>) ret);</div><div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;}</div><div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160;</div><div class="line"><a name="l00826"></a><span class="lineno">  826</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00827"></a><span class="lineno"><a class="line" href="posix_8h.html#a474e4e6cac62ef12c66b8a597c14e5f6">  827</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a474e4e6cac62ef12c66b8a597c14e5f6">ftruncate</a>(<span class="keywordtype">int</span> fd, <a class="code" href="posix_8h.html#aac46e03c2018bada012333c31f41df12">off_t</a> length)</div><div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160;{</div><div class="line"><a name="l00829"></a><span class="lineno">  829</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l00830"></a><span class="lineno">  830</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l00831"></a><span class="lineno">  831</span>&#160;    <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44c">FRESULT</a> rc;</div><div class="line"><a name="l00832"></a><span class="lineno">  832</span>&#160;</div><div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>(fd))</div><div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00835"></a><span class="lineno">  835</span>&#160;    <span class="comment">// fileno_to_fatfs checks for fd out of bounds</span></div><div class="line"><a name="l00836"></a><span class="lineno">  836</span>&#160;    fh = <a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(fd);</div><div class="line"><a name="l00837"></a><span class="lineno">  837</span>&#160;    <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00838"></a><span class="lineno">  838</span>&#160;    {</div><div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00840"></a><span class="lineno">  840</span>&#160;    }</div><div class="line"><a name="l00841"></a><span class="lineno">  841</span>&#160;    rc = <a class="code" href="ff_8c.html#a1ade4a85f88359e47c474a5436cc20fa">f_lseek</a>(fh, length);</div><div class="line"><a name="l00842"></a><span class="lineno">  842</span>&#160;    <span class="keywordflow">if</span> (rc != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l00843"></a><span class="lineno">  843</span>&#160;    {</div><div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(rc);</div><div class="line"><a name="l00845"></a><span class="lineno">  845</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00846"></a><span class="lineno">  846</span>&#160;    }</div><div class="line"><a name="l00847"></a><span class="lineno">  847</span>&#160;    rc = <a class="code" href="ff_8c.html#a032d09ef6df748b4ce23206d80ef67c5">f_truncate</a>(fh);</div><div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;    <span class="keywordflow">if</span> (rc != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;    {</div><div class="line"><a name="l00850"></a><span class="lineno">  850</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(rc);</div><div class="line"><a name="l00851"></a><span class="lineno">  851</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00852"></a><span class="lineno">  852</span>&#160;    }</div><div class="line"><a name="l00853"></a><span class="lineno">  853</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;}</div><div class="line"><a name="l00855"></a><span class="lineno">  855</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno">  867</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00868"></a><span class="lineno"><a class="line" href="posix_8h.html#a148630cbecc0822d9395f002691ffe75">  868</a></span>&#160;<span class="keywordtype">size_t</span> <a class="code" href="posix_8c.html#a148630cbecc0822d9395f002691ffe75">fwrite</a>(<span class="keyword">const</span> <span class="keywordtype">void</span> *ptr, <span class="keywordtype">size_t</span> size, <span class="keywordtype">size_t</span> nmemb, <a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;{</div><div class="line"><a name="l00870"></a><span class="lineno">  870</span>&#160;    <span class="keywordtype">size_t</span> count = size * nmemb;</div><div class="line"><a name="l00871"></a><span class="lineno">  871</span>&#160;    <span class="keywordtype">int</span> fn = <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>(stream);</div><div class="line"><a name="l00872"></a><span class="lineno">  872</span>&#160;    <a class="code" href="posix_8h.html#a170745d0d946e79c4c2a056d1d158996">ssize_t</a> ret;</div><div class="line"><a name="l00873"></a><span class="lineno">  873</span>&#160;    </div><div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;    <span class="comment">// write () checks for fn out of bounds</span></div><div class="line"><a name="l00875"></a><span class="lineno">  875</span>&#160;    ret =  <a class="code" href="posix_8c.html#a072435300ac99e8d7c3749f45166e797">write</a>(fn, ptr, count);</div><div class="line"><a name="l00876"></a><span class="lineno">  876</span>&#160;</div><div class="line"><a name="l00877"></a><span class="lineno">  877</span>&#160;    <span class="keywordflow">if</span>(ret &lt; 0)</div><div class="line"><a name="l00878"></a><span class="lineno">  878</span>&#160;        <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno">  880</span>&#160;    <span class="keywordflow">return</span>((<span class="keywordtype">size_t</span>) ret);</div><div class="line"><a name="l00881"></a><span class="lineno">  881</span>&#160;}</div><div class="line"><a name="l00882"></a><span class="lineno">  882</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno">  883</span>&#160;</div><div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;</div><div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="posix_8h.html#a3e5e6f96d36b5cdacfaf6b3976cd5af2">  895</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a3e5e6f96d36b5cdacfaf6b3976cd5af2">open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <span class="keywordtype">int</span> flags)</div><div class="line"><a name="l00896"></a><span class="lineno">  896</span>&#160;{</div><div class="line"><a name="l00897"></a><span class="lineno">  897</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>;</div><div class="line"><a name="l00898"></a><span class="lineno">  898</span>&#160;    <span class="keywordtype">int</span> fatfs_modes;</div><div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l00900"></a><span class="lineno">  900</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l00901"></a><span class="lineno">  901</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l00902"></a><span class="lineno">  902</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno">  903</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;</div><div class="line"><a name="l00905"></a><span class="lineno">  905</span>&#160;<span class="comment">// FIXME Assume here that the disk interface mmc_init was already called </span></div><div class="line"><a name="l00906"></a><span class="lineno">  906</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l00907"></a><span class="lineno">  907</span>&#160;<span class="comment">// Checks Disk status</span></div><div class="line"><a name="l00908"></a><span class="lineno">  908</span>&#160;    res = <a class="code" href="mmc__hal_8c.html#ad417477e66c88b40dcce683fd6a5c47a">mmc_init</a>(0);</div><div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;</div><div class="line"><a name="l00910"></a><span class="lineno">  910</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="diskio_8h.html#aacdfef1dad6565f65c26d12fe0ea4b2ba2ea4b6ef3fffc17dd1d38ab5c2837737">RES_OK</a>)</div><div class="line"><a name="l00911"></a><span class="lineno">  911</span>&#160;    {</div><div class="line"><a name="l00912"></a><span class="lineno">  912</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l00913"></a><span class="lineno">  913</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;    }</div><div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00916"></a><span class="lineno">  916</span>&#160;</div><div class="line"><a name="l00917"></a><span class="lineno">  917</span>&#160;    <span class="keywordflow">if</span>((flags &amp; <a class="code" href="posix_8h.html#a4dc4d45e07d2abc899bcaf04b2846a87">O_ACCMODE</a>) == <a class="code" href="posix_8h.html#abb0586253488ee61072b73557eeb873b">O_RDWR</a>)</div><div class="line"><a name="l00918"></a><span class="lineno">  918</span>&#160;        fatfs_modes = <a class="code" href="ff_8h.html#a1f4f3530ff03abbd979b072536e72290">FA_READ</a> | <a class="code" href="ff_8h.html#afa366963220c89b882c0361794020c14">FA_WRITE</a>;</div><div class="line"><a name="l00919"></a><span class="lineno">  919</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span>((flags &amp; O_ACCMODE) == <a class="code" href="posix_8h.html#a7a68c9ffaac7dbcd652225dd7c06a54b">O_RDONLY</a>)</div><div class="line"><a name="l00920"></a><span class="lineno">  920</span>&#160;        fatfs_modes = <a class="code" href="ff_8h.html#a1f4f3530ff03abbd979b072536e72290">FA_READ</a>;</div><div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160;        fatfs_modes = <a class="code" href="ff_8h.html#afa366963220c89b882c0361794020c14">FA_WRITE</a>;</div><div class="line"><a name="l00923"></a><span class="lineno">  923</span>&#160;</div><div class="line"><a name="l00924"></a><span class="lineno">  924</span>&#160;    <span class="keywordflow">if</span>(flags &amp; <a class="code" href="posix_8h.html#a1cf6b1de1fffedaa1d26b189e9a8d2cc">O_CREAT</a>)</div><div class="line"><a name="l00925"></a><span class="lineno">  925</span>&#160;    {</div><div class="line"><a name="l00926"></a><span class="lineno">  926</span>&#160;        <span class="keywordflow">if</span>(flags &amp; <a class="code" href="posix_8h.html#ad1d67e453fb3031f40f8cd3403773813">O_TRUNC</a>)</div><div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;            fatfs_modes |= <a class="code" href="ff_8h.html#afba4546b131dea4b24727fa20a80e29f">FA_CREATE_ALWAYS</a>;</div><div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160;        <span class="keywordflow">else</span></div><div class="line"><a name="l00929"></a><span class="lineno">  929</span>&#160;            fatfs_modes |= <a class="code" href="ff_8h.html#a17b01553029920ac0468912b4bcb16c7">FA_OPEN_ALWAYS</a>;</div><div class="line"><a name="l00930"></a><span class="lineno">  930</span>&#160;    }</div><div class="line"><a name="l00931"></a><span class="lineno">  931</span>&#160;</div><div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;    fileno = <a class="code" href="posix_8c.html#abab788c42cce343cde2f5b8f90015229">new_file_descriptor</a>();</div><div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;</div><div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160;    <span class="comment">// checks if fileno out of bounds</span></div><div class="line"><a name="l00935"></a><span class="lineno">  935</span>&#160;    stream = <a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(fileno);</div><div class="line"><a name="l00936"></a><span class="lineno">  936</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00937"></a><span class="lineno">  937</span>&#160;    {</div><div class="line"><a name="l00938"></a><span class="lineno">  938</span>&#160;        <a class="code" href="posix_8c.html#a38496612f759733234128893e4c60a89">free_file_descriptor</a>(fileno);</div><div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160;    }</div><div class="line"><a name="l00941"></a><span class="lineno">  941</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno">  942</span>&#160;    <span class="comment">// fileno_to_fatfs checks for fileno out of bounds</span></div><div class="line"><a name="l00943"></a><span class="lineno">  943</span>&#160;    fh = <a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(fileno);</div><div class="line"><a name="l00944"></a><span class="lineno">  944</span>&#160;    <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;    {</div><div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160;        <a class="code" href="posix_8c.html#a38496612f759733234128893e4c60a89">free_file_descriptor</a>(fileno);</div><div class="line"><a name="l00947"></a><span class="lineno">  947</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l00948"></a><span class="lineno">  948</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00949"></a><span class="lineno">  949</span>&#160;    }</div><div class="line"><a name="l00950"></a><span class="lineno">  950</span>&#160;    res = <a class="code" href="ff_8c.html#ab13b513f64fe29bc02dcba9581ab3bfa">f_open</a>(fh, pathname, (<a class="code" href="integer_8h.html#a4ae1dab0fb4b072a66584546209e7d58">BYTE</a>) (fatfs_modes &amp; 0xff));</div><div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160;    {</div><div class="line"><a name="l00953"></a><span class="lineno">  953</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l00954"></a><span class="lineno">  954</span>&#160;        <a class="code" href="posix_8c.html#a38496612f759733234128893e4c60a89">free_file_descriptor</a>(fileno);</div><div class="line"><a name="l00955"></a><span class="lineno">  955</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00956"></a><span class="lineno">  956</span>&#160;    }</div><div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;    <span class="keywordflow">if</span>(flags &amp; <a class="code" href="posix_8h.html#ae036f789407d21f07b211552d67b3214">O_APPEND</a>)</div><div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160;    {</div><div class="line"><a name="l00960"></a><span class="lineno">  960</span>&#160;        res = <a class="code" href="ff_8c.html#a1ade4a85f88359e47c474a5436cc20fa">f_lseek</a>(fh, <a class="code" href="ff_8h.html#a26f33722c5bf1aa3cd6f0290a83eb2bc">f_size</a>(fh));</div><div class="line"><a name="l00961"></a><span class="lineno">  961</span>&#160;        <span class="keywordflow">if</span> (res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l00962"></a><span class="lineno">  962</span>&#160;        {</div><div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;            <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160;            <a class="code" href="ff_8c.html#adab02d5c0e368f7d131ef7d7d2676c7a">f_close</a>(fh);</div><div class="line"><a name="l00965"></a><span class="lineno">  965</span>&#160;            <a class="code" href="posix_8c.html#a38496612f759733234128893e4c60a89">free_file_descriptor</a>(fileno);</div><div class="line"><a name="l00966"></a><span class="lineno">  966</span>&#160;            <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l00967"></a><span class="lineno">  967</span>&#160;        }</div><div class="line"><a name="l00968"></a><span class="lineno">  968</span>&#160;    }</div><div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;</div><div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160;    <span class="keywordflow">if</span>((flags &amp; O_ACCMODE) == <a class="code" href="posix_8h.html#abb0586253488ee61072b73557eeb873b">O_RDWR</a>)</div><div class="line"><a name="l00971"></a><span class="lineno">  971</span>&#160;    {</div><div class="line"><a name="l00972"></a><span class="lineno">  972</span>&#160;        <span class="comment">// FIXME fdevopen should do this</span></div><div class="line"><a name="l00973"></a><span class="lineno">  973</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a01c8b217e42cc11b6a7f8429114e9d46">put</a> = <a class="code" href="posix_8c.html#adfd015ed8dbac3473269d1a068bf5904">fatfs_putc</a>;</div><div class="line"><a name="l00974"></a><span class="lineno">  974</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a2d816b077c3af0425344fe4b283dad33">get</a> = <a class="code" href="posix_8c.html#a5811041feb43c22c6e609a8875475abc">fatfs_getc</a>;</div><div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> = <a class="code" href="posix_8h.html#a93db55caeeaf13488a635f8896a6bdf3">_FDEV_SETUP_RW</a>;</div><div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160;    }</div><div class="line"><a name="l00977"></a><span class="lineno">  977</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span>((flags &amp; O_ACCMODE) == <a class="code" href="posix_8h.html#a7a68c9ffaac7dbcd652225dd7c06a54b">O_RDONLY</a>)</div><div class="line"><a name="l00978"></a><span class="lineno">  978</span>&#160;    {</div><div class="line"><a name="l00979"></a><span class="lineno">  979</span>&#160;        <span class="comment">// FIXME fdevopen should do this</span></div><div class="line"><a name="l00980"></a><span class="lineno">  980</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a01c8b217e42cc11b6a7f8429114e9d46">put</a> = <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00981"></a><span class="lineno">  981</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a2d816b077c3af0425344fe4b283dad33">get</a> = <a class="code" href="posix_8c.html#a5811041feb43c22c6e609a8875475abc">fatfs_getc</a>;</div><div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> = <a class="code" href="posix_8h.html#a79826a1c733e4f67843256d34ad64352">_FDEV_SETUP_READ</a>;</div><div class="line"><a name="l00983"></a><span class="lineno">  983</span>&#160;    }</div><div class="line"><a name="l00984"></a><span class="lineno">  984</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l00985"></a><span class="lineno">  985</span>&#160;    {</div><div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160;        <span class="comment">// FIXME fdevopen should do this</span></div><div class="line"><a name="l00987"></a><span class="lineno">  987</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a01c8b217e42cc11b6a7f8429114e9d46">put</a> = <a class="code" href="posix_8c.html#adfd015ed8dbac3473269d1a068bf5904">fatfs_putc</a>;</div><div class="line"><a name="l00988"></a><span class="lineno">  988</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a2d816b077c3af0425344fe4b283dad33">get</a> = <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l00989"></a><span class="lineno">  989</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> = <a class="code" href="posix_8h.html#a822a791a1c06a12b95c14ace75b48ad2">_FDEV_SETUP_WRITE</a>;</div><div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160;    }</div><div class="line"><a name="l00991"></a><span class="lineno">  991</span>&#160;</div><div class="line"><a name="l00992"></a><span class="lineno">  992</span>&#160;    <span class="keywordflow">return</span>(fileno);</div><div class="line"><a name="l00993"></a><span class="lineno">  993</span>&#160;}</div><div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01006"></a><span class="lineno"><a class="line" href="posix_8h.html#af104a2c05bef787e54c6925616e867df"> 1006</a></span>&#160;<a class="code" href="posix_8h.html#a170745d0d946e79c4c2a056d1d158996">ssize_t</a> <a class="code" href="posix_8c.html#af104a2c05bef787e54c6925616e867df">read</a>(<span class="keywordtype">int</span> fd, <span class="keyword">const</span> <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> count)</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;{</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;    <a class="code" href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a> size;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;    <a class="code" href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a> bytes = count;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;    <span class="keywordtype">int</span> ret;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;    <span class="comment">//FIXME</span></div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;    *(<span class="keywordtype">char</span> *) buf = 0;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;    <span class="comment">// TTY read function</span></div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;    <span class="comment">// FIXME should we really be blocking ???</span></div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;    stream = <a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(fd);</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="posix_8h.html#aaca70138f0cb63ddb026921afc635179">stdin</a>)</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;    {</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;        <span class="keywordtype">char</span> *ptr = (<span class="keywordtype">char</span> *) buf;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;        <span class="comment">// ungetc is undefined for read</span></div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= <a class="code" href="posix_8h.html#ad541703cea6b378290dcf2ea448d2879">__SUNGET</a>;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;        size = 0;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;        <span class="keywordflow">while</span>(count--)</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;        {</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;            ret = <a class="code" href="posix_8c.html#a1d2fa24415329171e6765ed5309b6edd">fgetc</a>(stream);</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;            <span class="keywordflow">if</span>(ret &lt; 0)</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;            </div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;            *ptr++ = ret;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;            ++size;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;        }</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;        <span class="keywordflow">return</span>(size);</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;    }</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="posix_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a> || stream == <a class="code" href="posix_8h.html#a5ce35bd5ba5021fd3b2e951e8f497656">stderr</a>)</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;    {</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;    }</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;    <span class="comment">// fileno_to_fatfs checks for fd out of bounds</span></div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;    fh = <a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(fd);</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;    <span class="keywordflow">if</span> ( fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> )</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;    {</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;    }</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;    res = <a class="code" href="ff_8c.html#ad55dbad62205065ba7e36ae5fc72dac6">f_read</a>(fh, (<span class="keywordtype">void</span> *) buf, bytes, &amp;size);</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;    {</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;    }</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;    <span class="keywordflow">return</span> ((<a class="code" href="posix_8h.html#a170745d0d946e79c4c2a056d1d158996">ssize_t</a>) size);</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;}</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01069"></a><span class="lineno"><a class="line" href="posix_8h.html#a8f7f00d4ec0d99440762b0a664aebf70"> 1069</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="posix_8c.html#a8f7f00d4ec0d99440762b0a664aebf70">sync</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;{</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;    <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="posix_8h.html#a2c5eecb22513a88c24ae5831a3265e54">MAX_FILES</a>;++i)</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;    {</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>(i))</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;        <span class="comment">// fileno_to_fatfs checks for i out of bounds</span></div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;        fh = <a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(i);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;        <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;        (void ) <a class="code" href="posix_8c.html#a521c33bdb3606c9f3546b9cbcd37b9ac">syncfs</a>(i);</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;    }</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;}</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01096"></a><span class="lineno"><a class="line" href="posix_8h.html#a521c33bdb3606c9f3546b9cbcd37b9ac"> 1096</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a521c33bdb3606c9f3546b9cbcd37b9ac">syncfs</a>(<span class="keywordtype">int</span> fd)</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;{</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;    <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44c">FRESULT</a> res;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>(fd))</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;    {</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;    }</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;    stream = <a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(fd);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;    <span class="comment">// reset unget on sync</span></div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;    stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= <a class="code" href="posix_8h.html#ad541703cea6b378290dcf2ea448d2879">__SUNGET</a>;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;    <span class="comment">// fileno_to_fatfs checks for fd out of bounds</span></div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;    fh = <a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(fd);</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;    <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;    {</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;    }</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;    res  = <a class="code" href="ff_8c.html#a96ea1b2dd03a41635e07216b5002d1fa">f_sync</a> ( fh );</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;    <span class="keywordflow">if</span> (res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;    {</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;    }</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;}</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01142"></a><span class="lineno"><a class="line" href="posix_8h.html#a73a95c4a93875be906e573c00b30c5ea"> 1142</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a73a95c4a93875be906e573c00b30c5ea">truncate</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *path, <a class="code" href="posix_8h.html#aac46e03c2018bada012333c31f41df12">off_t</a> length)</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;{</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;    <a class="code" href="structFIL.html">FIL</a> fh;</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;    <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44c">FRESULT</a> rc;</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;    rc = <a class="code" href="ff_8c.html#ab13b513f64fe29bc02dcba9581ab3bfa">f_open</a>(&amp;fh , path, <a class="code" href="ff_8h.html#a0c5dd686b10f84c2a2b3954957a5979a">FA_OPEN_EXISTING</a> | <a class="code" href="ff_8h.html#a1f4f3530ff03abbd979b072536e72290">FA_READ</a> | <a class="code" href="ff_8h.html#afa366963220c89b882c0361794020c14">FA_WRITE</a>);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;    <span class="keywordflow">if</span> (rc != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;    {</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(rc);</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;    }</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;    rc = <a class="code" href="ff_8c.html#a1ade4a85f88359e47c474a5436cc20fa">f_lseek</a>(&amp;fh, length);</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;    <span class="keywordflow">if</span> (rc != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;    {</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(rc);</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;    }</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;    rc = <a class="code" href="ff_8c.html#a032d09ef6df748b4ce23206d80ef67c5">f_truncate</a>(&amp;fh);</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;    <span class="keywordflow">if</span> (rc != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;    {</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(rc);</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;    }</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;}</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01180"></a><span class="lineno"><a class="line" href="posix_8h.html#a072435300ac99e8d7c3749f45166e797"> 1180</a></span>&#160;<a class="code" href="posix_8h.html#a170745d0d946e79c4c2a056d1d158996">ssize_t</a> <a class="code" href="posix_8c.html#a072435300ac99e8d7c3749f45166e797">write</a>(<span class="keywordtype">int</span> fd, <span class="keyword">const</span> <span class="keywordtype">void</span> *buf, <span class="keywordtype">size_t</span> count)</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;{</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;    <a class="code" href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a> size;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;    <a class="code" href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a> bytes = count;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;    <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44c">FRESULT</a> res;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;    <span class="comment">// TTY read function</span></div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;    stream = <a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(fd);</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="posix_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a> || stream == <a class="code" href="posix_8h.html#a5ce35bd5ba5021fd3b2e951e8f497656">stderr</a>)</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;    {</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;        <span class="keywordtype">char</span> *ptr = (<span class="keywordtype">char</span> *) buf;   </div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;        size = 0;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;        <span class="keywordflow">while</span>(count--)</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;        {</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;            <span class="keywordtype">int</span> c,ret;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;            c = *ptr++;</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;            ret = <a class="code" href="posix_8c.html#a6bdef0a37397953c3b0f14c4d5d0eb10">fputc</a>(c, stream);</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;            <span class="keywordflow">if</span>(c != ret)</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;                <span class="keywordflow">break</span>;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;            ++size;</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;        }</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;        <span class="keywordflow">return</span>(size);</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;    }</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="posix_8h.html#aaca70138f0cb63ddb026921afc635179">stdin</a>)</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;    {</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;    }</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;    <span class="comment">// fileno_to_fatfs checks for fd out of bounds</span></div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;    fh = <a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(fd);</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;    <span class="keywordflow">if</span> ( fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> )</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;    {</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;    }</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;    res = <a class="code" href="ff_8c.html#abecaaa3eb194f786ab6042cf3b5e4ee7">f_write</a>(fh, buf, bytes, &amp;size);</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;    {</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;    }</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;    <span class="keywordflow">return</span> ((<a class="code" href="posix_8h.html#a170745d0d946e79c4c2a056d1d158996">ssize_t</a>) size);</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;}</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01239"></a><span class="lineno"><a class="line" href="posix_8h.html#ad6fd240fec1d65213f34b6e6465a8033"> 1239</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#ad6fd240fec1d65213f34b6e6465a8033">fclose</a>(<a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;{</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;    <span class="keywordtype">int</span> fn = <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>(stream);</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;    <span class="keywordflow">if</span>(fn &lt; 0)</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;    <span class="keywordflow">return</span>( <a class="code" href="posix_8c.html#a48dc1df1627501d3faed4bf1f9801759">close</a>(fn) );</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;}</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;<span class="comment"></span><span class="comment">// =============================================</span></div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01260"></a><span class="lineno"><a class="line" href="posix_8h.html#a111f2e6e6bc9f0a46210a323cab093c7"> 1260</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="posix_8c.html#a111f2e6e6bc9f0a46210a323cab093c7">dump_stat</a>(<span class="keyword">struct</span> <a class="code" href="structstat.html">stat</a> *sp)</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;{</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;    <a class="code" href="posix_8h.html#af8f4385bb42836d1e3ad4fea9d71d1b9">mode_t</a> mode = sp-&gt;<a class="code" href="structstat.html#a5cbdd829011af82ba61e83773bbcbc7d">st_mode</a>;</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;    <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;\tSize:  %lu\n&quot;</span>, (<a class="code" href="send_8c.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>)sp-&gt;<a class="code" href="structstat.html#a040e19c8b9766f841fde8786ce9297bf">st_size</a>);</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;    <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;\tType:  &quot;</span>);</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8h.html#a3746cdc5aac871e6f6504fbcbd29ef1d">S_ISDIR</a>(mode))</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;        <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;DIR\n&quot;</span>);</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;    <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="posix_8h.html#aad0f32c2c182238f2ff71c83e6ab65a0">S_ISREG</a>(mode))</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;        <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;File\n&quot;</span>);</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;        <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;Unknown\n&quot;</span>);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;    <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;\tMode:  %lo\n&quot;</span>, (<a class="code" href="send_8c.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>)sp-&gt;<a class="code" href="structstat.html#a5cbdd829011af82ba61e83773bbcbc7d">st_mode</a>);</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;    <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;\tUID:   %lu\n&quot;</span>, (<a class="code" href="send_8c.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>)sp-&gt;<a class="code" href="structstat.html#a4a8708a3d18be60ee7b2f06c4cab0c70">st_uid</a>);</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;    <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;\tGID:   %lu\n&quot;</span>, (<a class="code" href="send_8c.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a>)sp-&gt;<a class="code" href="structstat.html#ab864f16f436cec370f0ced585d897698">st_gid</a>);</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;    <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;\tatime: %s\n&quot;</span>,<a class="code" href="posix_8c.html#a39eea0b104438afa9ca0500c2e8d6887">mctime</a>((<a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a>)sp-&gt;<a class="code" href="structstat.html#ab74d1e7e345e88b9d0fb2688a97cba64">st_atime</a>));</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;    <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;\tmtime: %s\n&quot;</span>,<a class="code" href="posix_8c.html#a39eea0b104438afa9ca0500c2e8d6887">mctime</a>((<a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a>)sp-&gt;<a class="code" href="structstat.html#a77e235090f8cb6897f1c0ce65689006b">st_mtime</a>));</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;    <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;\tctime: %s\n&quot;</span>,<a class="code" href="posix_8c.html#a39eea0b104438afa9ca0500c2e8d6887">mctime</a>((<a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a>)sp-&gt;<a class="code" href="structstat.html#a1b4b858db1ebe79c3d6e0fc1ef721024">st_ctime</a>));</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;}</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;<span class="keywordtype">int</span> fstat(<span class="keywordtype">int</span> fd, <span class="keyword">struct</span> <a class="code" href="structstat.html">stat</a> *buf)</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;{</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;    <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44c">FRESULT</a> rc;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>(fd))</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;    <span class="comment">//FIXME TODO</span></div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;    <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;}</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01323"></a><span class="lineno"><a class="line" href="posix_8h.html#a39eea0b104438afa9ca0500c2e8d6887"> 1323</a></span>&#160;<span class="keywordtype">char</span> *<a class="code" href="posix_8c.html#a39eea0b104438afa9ca0500c2e8d6887">mctime</a>(<a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a> timev)</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;{</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;    <span class="keywordtype">char</span> *ptr = (<span class="keywordtype">char</span> *)<a class="code" href="time_8c.html#acf34275ac6fb2f724205873402dc9f70">ctime_gm</a>(&amp;timev);</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;    <span class="keywordtype">int</span> len;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;    len = <a class="code" href="stringsup_8c.html#a895ea3a2f9901e4c962806cc15271339">strlen</a>(ptr);</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;    <span class="keywordflow">if</span>(len &amp;&amp; ptr[len-1] == <span class="charliteral">&#39;\n&#39;</span>)</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;        ptr[len-1] = 0;</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;    <span class="keywordflow">return</span>(ptr);</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;}</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01344"></a><span class="lineno"><a class="line" href="posix_8h.html#abef70bf7a4af8a1f4998db0035c51781"> 1344</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#abef70bf7a4af8a1f4998db0035c51781">stat</a>(<span class="keywordtype">char</span> *name, <span class="keyword">struct</span> <a class="code" href="structstat.html">stat</a> *buf)</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;{</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;    <a class="code" href="structFILINFO.html">FILINFO</a> <a class="code" href="network_8c.html#a1202cd63c360958e6272f9a20fa90f8b">info</a>;</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;    <a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a> epoch;</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;    <a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> mode;</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;    <span class="comment">// f_stat does not handle / or . as root directory</span></div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="stringsup_8c.html#abee00aec80e542c31b536a531ffe761a">strcmp</a>(name,<span class="stringliteral">&quot;/&quot;</span>) == 0 || <a class="code" href="stringsup_8c.html#abee00aec80e542c31b536a531ffe761a">strcmp</a>(name,<span class="stringliteral">&quot;.&quot;</span>) == 0)</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;    {</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;        buf-&gt;<a class="code" href="structstat.html#ab74d1e7e345e88b9d0fb2688a97cba64">st_atime</a> = 0;</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;        buf-&gt;<a class="code" href="structstat.html#a77e235090f8cb6897f1c0ce65689006b">st_mtime</a> = 0;</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;        buf-&gt;<a class="code" href="structstat.html#a1b4b858db1ebe79c3d6e0fc1ef721024">st_ctime</a> = 0;</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;        buf-&gt;<a class="code" href="structstat.html#a4a8708a3d18be60ee7b2f06c4cab0c70">st_uid</a>= 0;</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;        buf-&gt;<a class="code" href="structstat.html#ab864f16f436cec370f0ced585d897698">st_gid</a>= 0;</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;        buf-&gt;<a class="code" href="structstat.html#a040e19c8b9766f841fde8786ce9297bf">st_size</a> = 0;</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;        buf-&gt;<a class="code" href="structstat.html#a5cbdd829011af82ba61e83773bbcbc7d">st_mode</a> = <a class="code" href="posix_8h.html#a11fb0652b963a735f3377eb1c9239f2d">S_IFDIR</a>;</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;        <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;    }</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;    res = <a class="code" href="ff_8c.html#a84b14214901bda30fdfe7f45f1aeb634">f_stat</a>(name, &amp;info);</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;    {</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;    }</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;    buf-&gt;<a class="code" href="structstat.html#a040e19c8b9766f841fde8786ce9297bf">st_size</a> = info.<a class="code" href="structFILINFO.html#a9e5b78ed7190f73de3ebcbdfbd6d1844">fsize</a>;</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;    epoch = <a class="code" href="posix_8c.html#a178d5d21b21c0f60d6ff8dfbbc0d86f5">fat_time_to_unix</a>(info.<a class="code" href="structFILINFO.html#a7c01c48a15b1b49da459924437b0bd52">fdate</a>, info.<a class="code" href="structFILINFO.html#ae0f751b79621bf7b29669f177bbe6b9a">ftime</a>);</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;    buf-&gt;<a class="code" href="structstat.html#ab74d1e7e345e88b9d0fb2688a97cba64">st_atime</a> = epoch;                        <span class="comment">// Access time</span></div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;    buf-&gt;<a class="code" href="structstat.html#a77e235090f8cb6897f1c0ce65689006b">st_mtime</a> = epoch;                        <span class="comment">// Modification time</span></div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;    buf-&gt;<a class="code" href="structstat.html#a1b4b858db1ebe79c3d6e0fc1ef721024">st_ctime</a> = epoch;                        <span class="comment">// Creation time</span></div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;    <span class="comment">// We only handle read only case</span></div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;    mode = (<a class="code" href="posix_8h.html#ac5a6f01348af03d4c2cdd9d557880c4d">FATFS_R</a> | <a class="code" href="posix_8h.html#a0a88f1032e29e7cc97a96b40cdc996a5">FATFS_X</a>);</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;    <span class="keywordflow">if</span>( !(info.<a class="code" href="structFILINFO.html#a838d542585831b085537b363f18205c0">fattrib</a> &amp; <a class="code" href="ff_8h.html#add6d85d1e7a02b4f6188783ef91a5f1e">AM_RDO</a>))</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;        mode |= (<a class="code" href="posix_8h.html#a58a8434d968e434626088e2dc6ae6124">FATFS_W</a>);                        <span class="comment">// enable write if NOT read only</span></div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;    <span class="keywordflow">if</span>(info.<a class="code" href="structFILINFO.html#a838d542585831b085537b363f18205c0">fattrib</a> &amp; <a class="code" href="ff_8h.html#a1f25d5c17b5a3a6397b3398add8cdc15">AM_SYS</a>)</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;    {</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;        buf-&gt;<a class="code" href="structstat.html#a4a8708a3d18be60ee7b2f06c4cab0c70">st_uid</a>= 0;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;        buf-&gt;<a class="code" href="structstat.html#ab864f16f436cec370f0ced585d897698">st_gid</a>= 0;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;    }</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;    {</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;        buf-&gt;<a class="code" href="structstat.html#a4a8708a3d18be60ee7b2f06c4cab0c70">st_uid</a>=1000;</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;        buf-&gt;<a class="code" href="structstat.html#ab864f16f436cec370f0ced585d897698">st_gid</a>=1000;</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;    }</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;    <span class="keywordflow">if</span>(info.<a class="code" href="structFILINFO.html#a838d542585831b085537b363f18205c0">fattrib</a> &amp; <a class="code" href="ff_8h.html#a3a9db44e978ed6c13b641e092d4cd7d3">AM_DIR</a>)</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;        mode |= <a class="code" href="posix_8h.html#a11fb0652b963a735f3377eb1c9239f2d">S_IFDIR</a>;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;        mode |= <a class="code" href="posix_8h.html#a1aaa48b192a5dd3b6d7ee91fc98cd17d">S_IFREG</a>;</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;    buf-&gt;<a class="code" href="structstat.html#a5cbdd829011af82ba61e83773bbcbc7d">st_mode</a> = mode;</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;}</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01407"></a><span class="lineno"><a class="line" href="posix_8h.html#a732642e09075838bbbca28b3529f13db"> 1407</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a732642e09075838bbbca28b3529f13db">utime</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, <span class="keyword">const</span> <span class="keyword">struct</span> <a class="code" href="structutimbuf.html">utimbuf</a> *times)</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;{</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;    <a class="code" href="structFILINFO.html">FILINFO</a> fno;</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;    <a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> fdate,ftime;</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;    <a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a> ut;</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160;    <span class="keywordflow">if</span>(times)</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;        ut = times-&gt;<a class="code" href="structutimbuf.html#a7588ffe699a9eda52e94aa593bf7d6d8">modtime</a>;</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160;        ut = <a class="code" href="time_8c.html#a32b1cbd925752f0cd61d202bbe204a69">time</a>(0);</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;    </div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;    <a class="code" href="posix_8c.html#aa5666c514336f78c6d1ab6bc35c74ae0">unix_time_to_fat</a>(ut, (<a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> *) &amp;fdate, (<a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> *) &amp;ftime);</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;    </div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160;    fno.<a class="code" href="structFILINFO.html#a7c01c48a15b1b49da459924437b0bd52">fdate</a> = fdate;</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;    fno.<a class="code" href="structFILINFO.html#ae0f751b79621bf7b29669f177bbe6b9a">ftime</a> = ftime;</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;    res = <a class="code" href="ff_8c.html#ae69d637bea36b3aa303fb8265b2dd573">f_utime</a>(filename, (<a class="code" href="structFILINFO.html">FILINFO</a> *) &amp;fno);</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;    <span class="keywordflow">return</span>( <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res) );</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;}</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160;</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;<span class="comment"></span><span class="comment">// =============================================</span></div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;<span class="comment"></span><a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01446"></a><span class="lineno"><a class="line" href="posix_8h.html#a4d3dfaf2f5a63e2e4eaa128477a9b5e7"> 1446</a></span>&#160;<span class="keywordtype">char</span> *<a class="code" href="posix_8c.html#a4d3dfaf2f5a63e2e4eaa128477a9b5e7">basename</a>(<span class="keywordtype">char</span> *str)</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;{</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;    <span class="keywordtype">char</span> *base = str;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160;    <span class="keywordflow">if</span>(!str)</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;        <span class="keywordflow">return</span>(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;    <span class="keywordflow">while</span>(*str)</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;    {</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;        <span class="keywordflow">if</span>(*str++ == <span class="charliteral">&#39;/&#39;</span>)</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160;            base = str;</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;    }</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;    <span class="keywordflow">return</span>(base);</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160;}</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01466"></a><span class="lineno"><a class="line" href="posix_8h.html#a0b33c90b99d00a8bd2595f254d1409e1"> 1466</a></span>&#160;<span class="keywordtype">char</span> *<a class="code" href="posix_8c.html#a0b33c90b99d00a8bd2595f254d1409e1">baseext</a>(<span class="keywordtype">char</span> *str)</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;{</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;    <span class="keywordtype">char</span> *ext = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;    <span class="keywordflow">while</span>(*str)</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;    {</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;        <span class="keywordflow">if</span>(*str++ == <span class="charliteral">&#39;.&#39;</span>)</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;            ext = str;</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;    }</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;    <span class="keywordflow">return</span>(ext);</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;}</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01488"></a><span class="lineno"><a class="line" href="posix_8h.html#a9c74403d1a11692bcab2c9ab7de4b0d3"> 1488</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a9c74403d1a11692bcab2c9ab7de4b0d3">chdir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname)</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;{</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;    <span class="keywordtype">int</span> res = <a class="code" href="ff_8c.html#a99a8f0eee3b847f8148f4a3ce30b7dc1">f_chdir</a>(pathname);</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;    {</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;    }</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;}</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01513"></a><span class="lineno"><a class="line" href="posix_8h.html#a43b14410cd7b1b67c7834ad2d6a193ce"> 1513</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a43b14410cd7b1b67c7834ad2d6a193ce">chmod</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <a class="code" href="posix_8h.html#af8f4385bb42836d1e3ad4fea9d71d1b9">mode_t</a> mode)</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;{</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;    <span class="keywordtype">int</span> rc;</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160;    <span class="comment">// FIXME for now we combine user,group and other perms and ask if anyone has write perms ?</span></div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160;</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160;    <span class="comment">// Read only ???</span></div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;    <span class="keywordflow">if</span> ( !( mode &amp; ( <a class="code" href="posix_8h.html#ad70001754261c15a1bdc8e876c6d09d7">S_IWUSR</a> | <a class="code" href="posix_8h.html#ae6774871a90d9442f00abe18b87fee6e">S_IWGRP</a> | <a class="code" href="posix_8h.html#a5303f49f26293acdb9533756c78322fb">S_IWOTH</a>)))</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160;    {</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;        <span class="comment">// file is read only</span></div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;        rc = <a class="code" href="ff_8c.html#ab007bc58e2fdfc5d1ae8e87796e73965">f_chmod</a>(pathname, <a class="code" href="ff_8h.html#add6d85d1e7a02b4f6188783ef91a5f1e">AM_RDO</a>, <a class="code" href="ff_8h.html#add6d85d1e7a02b4f6188783ef91a5f1e">AM_RDO</a>);</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160;        <span class="keywordflow">if</span> (rc != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160;        {</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;            <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(rc);</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160;            <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;        }</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;    }</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;    </div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;}</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01551"></a><span class="lineno"><a class="line" href="posix_8h.html#a26a07a3db060ffc5659fe03495a29a1c"> 1551</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a26a07a3db060ffc5659fe03495a29a1c">dirname</a>(<span class="keywordtype">char</span> *str)</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160;{</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;    <span class="keywordtype">int</span> end = 0;</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="ili9341_8c.html#a4b00721003b8d35559a55c9098ff36c5">ind</a> = 0;</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160;</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160;    <span class="keywordflow">if</span>(!str)</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160;        <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160;</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160;    <span class="keywordflow">while</span>(*str)</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160;    {</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160;        <span class="keywordflow">if</span>(*str == <span class="charliteral">&#39;/&#39;</span>)</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160;            end = <a class="code" href="ili9341_8c.html#a4b00721003b8d35559a55c9098ff36c5">ind</a>;</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160;        ++str;</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160;        ++<a class="code" href="ili9341_8c.html#a4b00721003b8d35559a55c9098ff36c5">ind</a>;</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;    }</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160;    <span class="keywordflow">return</span>(end);</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160;}</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;<span class="keywordtype">int</span> fchmod(<span class="keywordtype">int</span> fd, <a class="code" href="posix_8h.html#af8f4385bb42836d1e3ad4fea9d71d1b9">mode_t</a> mode)</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160;{</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;    <span class="comment">//FIXME TODO</span></div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;    <span class="keywordflow">return</span> (-1);</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160;}</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160;</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01596"></a><span class="lineno"><a class="line" href="posix_8h.html#a6411298bb01166960f5a0378ac0fdb82"> 1596</a></span>&#160;<span class="keywordtype">char</span> *<a class="code" href="posix_8c.html#a6411298bb01166960f5a0378ac0fdb82">getcwd</a>(<span class="keywordtype">char</span> *pathname, <span class="keywordtype">int</span> len)</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;{</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;    res = <a class="code" href="ff_8c.html#a7da7c8d04f20b7f630073721eff53572">f_getcwd</a>(pathname, len);</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;    {</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160;    }</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;    <span class="keywordflow">return</span>(pathname);</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;}</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01619"></a><span class="lineno"><a class="line" href="posix_8h.html#a8b57a7ee1ba139c636477cf2998e8b1e"> 1619</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a8b57a7ee1ba139c636477cf2998e8b1e">mkdir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname, <a class="code" href="posix_8h.html#af8f4385bb42836d1e3ad4fea9d71d1b9">mode_t</a> mode)</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160;{</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160;</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160;    <span class="keywordflow">if</span>(mode)</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160;    {</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a43b14410cd7b1b67c7834ad2d6a193ce">chmod</a>(pathname, mode))</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;            <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160;    }</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;    <span class="keywordtype">int</span> res = <a class="code" href="ff_8c.html#a3d18a7f44fbdca3752f437264055c1ba">f_mkdir</a>(pathname);</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160;    {</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;    }</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;}</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160;</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01648"></a><span class="lineno"><a class="line" href="posix_8h.html#ada8cc8f9394cf54db8f338838a9fa7ce"> 1648</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#ada8cc8f9394cf54db8f338838a9fa7ce">rename</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *oldpath, <span class="keyword">const</span> <span class="keywordtype">char</span> *newpath)</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;{</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160;<span class="comment">/* Rename an object */</span></div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;    <span class="keywordtype">int</span> rc;</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160;    rc = <a class="code" href="ff_8c.html#a82160e688e49b549c8023a08517a65cb">f_rename</a>(oldpath, newpath);</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160;    <span class="keywordflow">if</span>(rc)</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160;    {</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(rc);</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;    }</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160;}</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160;</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01671"></a><span class="lineno"><a class="line" href="posix_8h.html#a6080dee579486f132062435577b77d10"> 1671</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a6080dee579486f132062435577b77d10">rmdir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname)</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160;{</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;    <span class="keywordtype">int</span> res = <a class="code" href="ff_8c.html#ac4f434f28feb4769fc4453f0cefe84f8">f_unlink</a>(pathname);</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;    {</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;    }</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160;}</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160;</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01693"></a><span class="lineno"><a class="line" href="posix_8h.html#aa964d662c19b2021d9cfd0c71bc686bd"> 1693</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aa964d662c19b2021d9cfd0c71bc686bd">unlink</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathname)</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160;{</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;    <span class="keywordtype">int</span> res = <a class="code" href="ff_8c.html#ac4f434f28feb4769fc4453f0cefe84f8">f_unlink</a>(pathname);</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160;    {</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;    }</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;}</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160;</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160;<span class="comment"></span><span class="comment">// =============================================</span></div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01717"></a><span class="lineno"><a class="line" href="posix_8h.html#aaeac2b41e8c2c3a5f91c9bd511a8c0a6"> 1717</a></span>&#160;<span class="comment"></span><span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aaeac2b41e8c2c3a5f91c9bd511a8c0a6">closedir</a>(<a class="code" href="structDIR.html">DIR</a> *dirp)</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160;{</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160;    <span class="keywordtype">int</span> res = <a class="code" href="ff_8c.html#a7a27f3b36634e7031af1f60b94beea40">f_closedir</a> (dirp);</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;    {</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160;    }</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;}</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160;</div><div class="line"><a name="l01735"></a><span class="lineno"><a class="line" href="posix_8c.html#ae5badb2fbda49f0741042e68c364532b"> 1735</a></span>&#160;<span class="keyword">static</span> <a class="code" href="structDIR.html">DIR</a> <a class="code" href="posix_8c.html#ae5badb2fbda49f0741042e68c364532b">_dp</a>;</div><div class="line"><a name="l01736"></a><span class="lineno"><a class="line" href="posix_8h.html#a19051b9081dfef221d9bf4583e935031"> 1736</a></span>&#160;<a class="code" href="structDIR.html">DIR</a> *<a class="code" href="posix_8c.html#a19051b9081dfef221d9bf4583e935031">opendir</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *pathdir)</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160;{</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;    <span class="keywordtype">int</span> res = <a class="code" href="ff_8c.html#aeb607fa4b05d127d971ff40f143bac66">f_opendir</a>((<a class="code" href="structDIR.html">DIR</a> *) &amp;_dp, pathdir);</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160;    {</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160;    }</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160;    <span class="keywordflow">return</span> ((<a class="code" href="structDIR.html">DIR</a> *) &amp;_dp);</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;}</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div><div class="line"><a name="l01754"></a><span class="lineno"><a class="line" href="posix_8c.html#a42837e7607f8e3b8ae74286253989724"> 1754</a></span>&#160;<span class="keyword">static</span>  <a class="code" href="structdirent.html">dirent_t</a> <a class="code" href="posix_8c.html#a42837e7607f8e3b8ae74286253989724">_de</a>;</div><div class="line"><a name="l01755"></a><span class="lineno"><a class="line" href="posix_8h.html#a58257faf8b13b3f14558613c632b2373"> 1755</a></span>&#160;<a class="code" href="structdirent.html">dirent_t</a> * <a class="code" href="posix_8c.html#a1508fedaef509d2976b43300306d1400">readdir</a>(<a class="code" href="structDIR.html">DIR</a> *dirp)</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;{</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160;    <a class="code" href="structFILINFO.html">FILINFO</a> fno;</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;    <span class="keywordtype">int</span> len;</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;    _de.<a class="code" href="structdirent.html#ae61380f3ccbc6c32e8650d7bce76197b">d_name</a>[0] = 0;</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160;    res = <a class="code" href="ff_8c.html#ae9647e339708c3d803db8de141986d96">f_readdir</a> ( dirp, &amp;fno );</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;    <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>)</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160;    {</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160;    }</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;    len = <a class="code" href="stringsup_8c.html#a895ea3a2f9901e4c962806cc15271339">strlen</a>(fno.<a class="code" href="structFILINFO.html#a7c3ce2dd03dc9a9726967fc43116079f">fname</a>);</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;    <a class="code" href="stringsup_8c.html#acdb13cf3724e976e98a6178baf0a3ac5">strncpy</a>(_de.<a class="code" href="structdirent.html#ae61380f3ccbc6c32e8650d7bce76197b">d_name</a>,fno.<a class="code" href="structFILINFO.html#a7c3ce2dd03dc9a9726967fc43116079f">fname</a>,len);</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160;    _de.<a class="code" href="structdirent.html#ae61380f3ccbc6c32e8650d7bce76197b">d_name</a>[len] = 0;</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160;    <span class="keywordflow">return</span>( (<a class="code" href="structdirent.html">dirent_t</a> *) &amp;_de);</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160;}</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160;</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;<span class="comment"></span><span class="comment">// =============================================</span></div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160;</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01786"></a><span class="lineno"><a class="line" href="posix_8h.html#a03baa4d851a2a855656081a4b7c8d72c"> 1786</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="posix_8c.html#a03baa4d851a2a855656081a4b7c8d72c">clrerror</a>(<a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;{</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160;    stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp;= ~<a class="code" href="posix_8h.html#a63f42c2888ed9bd0f00ee25002ee3b02">__SEOF</a>;</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160;    stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp;= ~<a class="code" href="posix_8h.html#a37117409538ffeec47002d6580e4b703">__SERR</a>;</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;}</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;</div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01798"></a><span class="lineno"><a class="line" href="posix_8h.html#ac37bff9f639fa95401b71839bbabd9a0"> 1798</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#ac37bff9f639fa95401b71839bbabd9a0">ferror</a>(<a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160;{</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160;    <span class="keywordflow">if</span>(stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#a37117409538ffeec47002d6580e4b703">__SERR</a>)</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160;        <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;    <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;}</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01814"></a><span class="lineno"><a class="line" href="posix_8h.html#a4ce26afbb10890d31c53a8ff76d992e3"> 1814</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="posix_8c.html#a4ce26afbb10890d31c53a8ff76d992e3">perror</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *s)</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160;{</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;    <span class="keyword">const</span> <span class="keywordtype">char</span> *ptr = <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160;</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160;</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> &gt;=0 &amp;&amp; <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> &lt; <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa952ba8aa5afef31b7893ed91ae13a56c">EBADMSG</a>)</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;        ptr = <a class="code" href="posix_8c.html#a76ebfe24a40210e5935998c1fa86d3a0">sys_errlist</a>[<a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a>];</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160;        ptr = <a class="code" href="posix_8c.html#a76ebfe24a40210e5935998c1fa86d3a0">sys_errlist</a>[<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa952ba8aa5afef31b7893ed91ae13a56c">EBADMSG</a>];</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160;</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160;    <span class="keywordflow">if</span>(s &amp;&amp; *s)</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;        <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;%s: %s\n&quot;</span>, s, ptr);</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;    <span class="keywordflow">else</span></div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160;        <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;%s\n&quot;</span>, ptr);</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160;}</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160;<span class="keywordtype">char</span> </div><div class="line"><a name="l01840"></a><span class="lineno"><a class="line" href="posix_8h.html#ae03e9f4fe4bf5e64a70fd186d532a5c8"> 1840</a></span>&#160;<a class="code" href="stringsup_8h.html#a399da2caab82ec1bb3d5a8fbc5306768">WEAK_ATR</a> *<a class="code" href="posix_8c.html#ae03e9f4fe4bf5e64a70fd186d532a5c8">strerror</a>(<span class="keywordtype">int</span> errnum)</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160;{</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;    <span class="keywordflow">return</span>( (<span class="keywordtype">char</span> *)<a class="code" href="posix_8c.html#a76ebfe24a40210e5935998c1fa86d3a0">sys_errlist</a>[errnum] );</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160;}</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160;</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160;</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01857"></a><span class="lineno"><a class="line" href="posix_8h.html#a6311c6b29216455ec9b716b9eb31c799"> 1857</a></span>&#160;<span class="keywordtype">char</span> *<a class="code" href="posix_8c.html#a6311c6b29216455ec9b716b9eb31c799">strerror_r</a>(<span class="keywordtype">int</span> errnum, <span class="keywordtype">char</span> *buf, <span class="keywordtype">size_t</span> buflen)</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160;{</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;        <a class="code" href="stringsup_8c.html#acdb13cf3724e976e98a6178baf0a3ac5">strncpy</a>(buf, <a class="code" href="posix_8c.html#a76ebfe24a40210e5935998c1fa86d3a0">sys_errlist</a>[errnum], buflen);</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;        <span class="keywordflow">return</span>(buf);</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160;}</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160;</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;<span class="comment"></span><span class="comment">// =============================================</span></div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160;<span class="comment"></span><a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160;<a class="code" href="struct____file.html">FILE</a> *</div><div class="line"><a name="l01876"></a><span class="lineno"><a class="line" href="posix_8h.html#ab814cff71bcbcc3a72a6c399e5084573"> 1876</a></span>&#160;<a class="code" href="posix_8c.html#ab814cff71bcbcc3a72a6c399e5084573">fdevopen</a>(<span class="keywordtype">int</span> (*put)(<span class="keywordtype">char</span>, <a class="code" href="struct____file.html">FILE</a> *), <span class="keywordtype">int</span> (*<span class="keyword">get</span>)(<a class="code" href="struct____file.html">FILE</a> *))</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;{</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *s;</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160;</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160;    <span class="keywordflow">if</span> (put == 0 &amp;&amp; <span class="keyword">get</span> == 0)</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160;</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160;    <span class="keywordflow">if</span> ((s = <a class="code" href="system_8c.html#a65ca18fba3d6cdb9ce8ca8040a96e0c5">safecalloc</a>(1, <span class="keyword">sizeof</span>(<a class="code" href="struct____file.html">FILE</a>))) == 0)</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160;        <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160;    s-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> = <a class="code" href="posix_8h.html#a910f0d9b3aff8a868393ce38fe91cc7d">__SMALLOC</a>;</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160;    <span class="keywordflow">if</span> (<span class="keyword">get</span> != 0) {</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160;        s-&gt;<a class="code" href="struct____file.html#a2d816b077c3af0425344fe4b283dad33">get</a> = <span class="keyword">get</span>;</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;        s-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= <a class="code" href="posix_8h.html#a9a9bfdbe4548d021af62fb947d2b6b82">__SRD</a>;</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160;        <span class="comment">// We assign the first device with a read discriptor to stdin</span></div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160;        <span class="comment">// Only assign once</span></div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="posix_8h.html#aaca70138f0cb63ddb026921afc635179">stdin</a> == 0)</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;            <a class="code" href="posix_8h.html#aaca70138f0cb63ddb026921afc635179">stdin</a> = s;</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160;    }</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160;</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160;    <span class="keywordflow">if</span> (put != 0) {</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;        s-&gt;<a class="code" href="struct____file.html#a01c8b217e42cc11b6a7f8429114e9d46">put</a> = put;</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160;        s-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= <a class="code" href="posix_8h.html#af08f227b04a8833c49ce8b798ca7f403">__SWR</a>;</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160;        <span class="comment">// NOTE: We assign the first device with a write to both STDOUT andd STDERR</span></div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160;</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;        <span class="comment">// Only assign in unassigned</span></div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="posix_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a> == 0) </div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160;            <a class="code" href="posix_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a> = s;</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160;        <span class="keywordflow">if</span> (<a class="code" href="posix_8h.html#a5ce35bd5ba5021fd3b2e951e8f497656">stderr</a> == 0)</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160;            <a class="code" href="posix_8h.html#a5ce35bd5ba5021fd3b2e951e8f497656">stderr</a> = s;</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;    }</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160;</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160;    <span class="keywordflow">return</span> s;</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160;}</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160;</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160;<span class="comment"></span><span class="comment">// =============================================</span></div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;</div><div class="line"><a name="l01922"></a><span class="lineno"><a class="line" href="posix_8h.html#aa1efac33e58ea2abd4cad808e05eb6dd"> 1922</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#ab66b36e0fd29a0a7384efda96cef575b">mkfs</a>(<span class="keywordtype">char</span> *name)</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160;{</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160;    <a class="code" href="structFATFS.html">FATFS</a> fs;</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160;    <a class="code" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> *mem;</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160;    <span class="keywordtype">int</span> len;</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;    <span class="keywordtype">int</span> c;</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160;    <span class="keywordtype">char</span> dev[4];</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160;</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160;    len = <a class="code" href="bdffontutil_8h.html#a4d192fe48cb19d0ef5a88c52ed23cf4c">MATCH</a>(name,<span class="stringliteral">&quot;/dev/sd&quot;</span>);</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;    <span class="keywordflow">if</span>(!len)</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160;    {</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160;        <a class="code" href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a>(<span class="stringliteral">&quot;Expected /dev/sda .. /dev/sdj\n&quot;</span>);</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160;        <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;    }</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160;    <span class="comment">// Convert /dev/sd[a-j] to 0: .. 9:</span></div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160;    dev[1] = <span class="charliteral">&#39;:&#39;</span>;</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;    dev[2] = 0;</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160;    c = <a class="code" href="stringsup_8c.html#a1825e0085bbbce998b39f9ff2682173c">tolower</a>( name[len-1] );</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160;    <span class="keywordflow">if</span>(c &gt;= <span class="charliteral">&#39;a&#39;</span> &amp;&amp; c &lt;= (<span class="charliteral">&#39;a&#39;</span> + 9))</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160;        dev[0] = (c - <span class="charliteral">&#39;a&#39;</span>);</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;    dev[3] = 0;</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160;</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160;    <span class="comment">// Register work area to the logical drive 0:</span></div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160;    res = <a class="code" href="ff_8c.html#a3bff54412627eb9cf8951ec88a464d1c">f_mount</a>(&amp;fs, dev, 0);                    </div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;    <span class="keywordflow">if</span>(!res)</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160;    {</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160;        <a class="code" href="fatfs__sup_8c.html#ab3509aecf1844c84f1797e5b567d531c">put_rc</a>(res);</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160;        <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160;    }</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160;</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160;    <span class="comment">// Allocate memory for mkfs function</span></div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;    mem = <a class="code" href="system_8c.html#aca19f0f1e5d805c1e5f61101fa4690f1">safemalloc</a>(1024);</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160;    <span class="keywordflow">if</span>(!mem)</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160;        <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160;</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160;    <span class="comment">// Create FAT volume on the logical drive 0</span></div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160;    <span class="comment">// 2nd argument is ignored. */</span></div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;    res = <a class="code" href="ff_8c.html#a52ff3c14f48a7bd12b5d8fcef84787ea">f_mkfs</a>(dev, <a class="code" href="ff_8h.html#aff61d3ed8f8c6ea5c25c3cb366320e08">FM_FAT32</a>, 0, mem, 1024);</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160;    <span class="keywordflow">if</span>(res)</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160;    {</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160;        <a class="code" href="fatfs__sup_8c.html#ab3509aecf1844c84f1797e5b567d531c">put_rc</a>(res);</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;        <a class="code" href="system_8c.html#a61f06ee340417c629633142e0a5db288">safefree</a>(mem);</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160;        <span class="keywordflow">return</span>(0);</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160;    }</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160;    <a class="code" href="system_8c.html#a61f06ee340417c629633142e0a5db288">safefree</a>(mem);</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160;    <span class="keywordflow">return</span>(1);</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160;}</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160;</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l01984"></a><span class="lineno"><a class="line" href="posix_8h.html#a5811041feb43c22c6e609a8875475abc"> 1984</a></span>&#160;<span class="keywordtype">int</span>  <a class="code" href="posix_8c.html#a5811041feb43c22c6e609a8875475abc">fatfs_getc</a>(<a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160;{</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160;    <a class="code" href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a> size;</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160;    <a class="code" href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a> c;</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160;    <span class="keywordtype">long</span> pos;</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160;</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160;    {</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;                            <span class="comment">// Bad File Number</span></div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160;    }</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160;</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160;    fh = (<a class="code" href="structFIL.html">FIL</a> *) <a class="code" href="posix_8h.html#ac04f5faa8e86a4ce4ae084d85386af40">fdev_get_udata</a>(stream);</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;    <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160;    {</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;                            <span class="comment">// Bad File Number</span></div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;    }</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160;</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160;    res = <a class="code" href="ff_8c.html#ad55dbad62205065ba7e36ae5fc72dac6">f_read</a>(fh, &amp;c, 1, (<a class="code" href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a> *) &amp;size);</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160;    <span class="keywordflow">if</span>( res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a> || size != 1)</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160;    {</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= <a class="code" href="posix_8h.html#a63f42c2888ed9bd0f00ee25002ee3b02">__SEOF</a>;</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160;    }</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160;</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160;    <span class="comment">// AUTOMATIC end of line METHOD detection</span></div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160;    <span class="comment">// ALWAYS return &#39;\n&#39; for ALL methods</span></div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;    <span class="comment">// History: End of line (EOL) characters sometimes differ, mostly legacy systems, and modern UNIX (which uses just &#39;\n&#39;)</span></div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;    <span class="comment">//    &#39;\r&#39; ONLY </span></div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160;    <span class="comment">//    &#39;\r\n&#39; </span></div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160;    <span class="comment">//    &#39;\n&#39; </span></div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160;    <span class="comment">// The difference was mostly from the way old mechanical printers were controlled.</span></div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;    <span class="comment">//    &#39;\n&#39; (New Line = NL) advanced the line</span></div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160;    <span class="comment">//    &#39;\r&#39; (Charage Return = CR) moved the print head to start of line </span></div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160;    <span class="comment">//    &#39;\t&#39; (Tabstop = TAB)</span></div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160;    <span class="comment">//    &#39;\f&#39; (Form feed = FF)</span></div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160;    <span class="comment">// The problem with mechanical devices is that each had differing control and time delays to deal with.</span></div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160;    <span class="comment">//  (TAB, CR, NL and FF) did different things and took differing times depending on the device.</span></div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160;    <span class="comment">//</span></div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;    <span class="comment">// Long before DOS UNIX took the position that controlling physical devices must be a device drivers problem only.</span></div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160;    <span class="comment">// They reasoned if users had to worry about all the ugly controll and timing issues no code would be portable.</span></div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160;    <span class="comment">// Therefore they made NL just a SYMBOL for the driver to determine what to do.</span></div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;    <span class="comment">// This design philosophy argued if you needed better control its better to use a real designed purposed tool for it.</span></div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;    <span class="comment">// (ie. like curses or termcap).</span></div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160;</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160;    <span class="comment">// Here to deal with those other old ugly stupid pointless EOL methods we convert to just a symbol &#39;\n&#39;</span></div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160;    <span class="comment">// FROM &#39;\n&#39; OR &#39;\r&#39;char OR &#39;\r\n&#39; TO &#39;\n&#39;</span></div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;    <span class="comment">// Note: char != &#39;\n&#39;</span></div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160;    <span class="keywordflow">if</span>(c == <span class="charliteral">&#39;\r&#39;</span>)</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160;    {</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160;        <span class="comment">// PEEK forward 1 character</span></div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160;        pos = <a class="code" href="ff_8h.html#a5e1daca7ce13cdc277e42185f7f9124f">f_tell</a>(fh);</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;        <span class="comment">// Check for trailing &#39;\n&#39; or EOF</span></div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160;        res = <a class="code" href="ff_8c.html#ad55dbad62205065ba7e36ae5fc72dac6">f_read</a>(fh, &amp;c, 1, (<a class="code" href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a> *) &amp;size);</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160;        <span class="keywordflow">if</span>(res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a> || size != 1)</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;        {</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160;            <span class="comment">// &#39;\r&#39; with EOF impiles &#39;\n&#39;</span></div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;            <span class="keywordflow">return</span>(<span class="charliteral">&#39;\n&#39;</span>);</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160;        }</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160;        <span class="comment">// This file must be &#39;\r&#39; ONLY for end of line</span></div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;        <span class="keywordflow">if</span>(c != <span class="charliteral">&#39;\n&#39;</span>)</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160;        {</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160;            <span class="comment">// Not &#39;\n&#39; or EOF o move file pointer back to just after the &#39;\r&#39;</span></div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160;            <a class="code" href="ff_8c.html#a1ade4a85f88359e47c474a5436cc20fa">f_lseek</a>(fh, pos);</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;            <span class="keywordflow">return</span>(<span class="charliteral">&#39;\n&#39;</span>);</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160;        }</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160;        c = <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160;    }</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160;    <span class="keywordflow">return</span>(c &amp; 0xff);</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160;}</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160;</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02074"></a><span class="lineno"><a class="line" href="posix_8h.html#adfd015ed8dbac3473269d1a068bf5904"> 2074</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#adfd015ed8dbac3473269d1a068bf5904">fatfs_putc</a>(<span class="keywordtype">char</span> c, <a class="code" href="struct____file.html">FILE</a> *stream)</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160;{</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160;    <span class="keywordtype">int</span> res;</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160;    <a class="code" href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a> size;</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160;</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = 0;</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160;    {</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;                            <span class="comment">// Bad File Number</span></div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;    }</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160;</div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;    fh = (<a class="code" href="structFIL.html">FIL</a> *) <a class="code" href="posix_8h.html#ac04f5faa8e86a4ce4ae084d85386af40">fdev_get_udata</a>(stream);</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;    <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;    {</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;                            <span class="comment">// Bad File Number</span></div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160;    }</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160;</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160;    res = <a class="code" href="ff_8c.html#abecaaa3eb194f786ab6042cf3b5e4ee7">f_write</a>(fh, &amp;c, 1, (<a class="code" href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a> *)  &amp;size);</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;    <span class="keywordflow">if</span>( res != <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a> || size != 1)</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160;    {</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>(res);</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160;        stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> |= <a class="code" href="posix_8h.html#a63f42c2888ed9bd0f00ee25002ee3b02">__SEOF</a>;</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a>);</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;    }</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160;    <span class="keywordflow">return</span>(c);</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160;}</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160;</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02114"></a><span class="lineno"><a class="line" href="posix_8h.html#ac20f0fc565c27bbbb900bde3337b09b9"> 2114</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a>( <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44c">FRESULT</a> Result )</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160;{</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160;    <span class="keywordflow">switch</span>( Result )</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;    {</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a>:              <span class="comment">/* FatFS (0) Succeeded */</span></div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160;            <span class="keywordflow">return</span> (0);          <span class="comment">/* POSIX OK */</span></div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca97dee4a6b485dc8f91f37486092dfe34">FR_DISK_ERR</a>:        <span class="comment">/* FatFS (1) A hard error occurred in the low level disk I/O layer */</span></div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa6d2c32b1730ea078f2802b34b1258a4c">EIO</a>);        <span class="comment">/* POSIX Input/output error (POSIX.1) */</span></div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160;</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cab6c9903af6e9bffbb7a288705f4a6a76">FR_INT_ERR</a>:         <span class="comment">/* FatFS (2) Assertion failed */</span></div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa156dcc38d9ba0765c6150544963ed267">EPERM</a>);      <span class="comment">/* POSIX Operation not permitted (POSIX.1) */</span></div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cac9894bed3e8632ede8d2712235fa8e45">FR_NOT_READY</a>:       <span class="comment">/* FatFS (3) The physical drive cannot work */</span></div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa9e2f813a51a5763a892f4b1783778e4b">EBUSY</a>);      <span class="comment">/* POSIX Device or resource busy (POSIX.1) */</span></div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca97da8f98fc2e66d8fa7847f9ebb19b8c">FR_NO_FILE</a>:         <span class="comment">/* FatFS (4) Could not find the file */</span></div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa996f6f948b613bccc738ff8517413c1a">ENOENT</a>);     <span class="comment">/* POSIX No such file or directory (POSIX.1) */</span></div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cae4529c8cc8b59783d6efc9ba4f574532">FR_NO_PATH</a>:         <span class="comment">/* FatFS (5) Could not find the path */</span></div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa996f6f948b613bccc738ff8517413c1a">ENOENT</a>);     <span class="comment">/* POSIX No such file or directory (POSIX.1) */</span></div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160;</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca83e45a4b579558c57192c0a391b9bb45">FR_INVALID_NAME</a>:    <span class="comment">/* FatFS (6) The path name format is invalid */</span></div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa7bfd237190819a0a272db7b0aa61d5c8">EINVAL</a>);     <span class="comment">/* POSIX Invalid argument (POSIX.1) */</span></div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca897e9f2dd7629a80f48af242d8bc1a3d">FR_DENIED</a>:          <span class="comment">/* FatFS (7) Access denied due to prohibited access or directory full */</span></div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa5fa7d65262e81125cecb27e80a26ce98">EACCES</a>);     <span class="comment">/* POSIX Permission denied (POSIX.1) */</span></div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca0d8f024d256df76e84782b95018a2450">FR_EXIST</a>:           <span class="comment">/* FatFS (8) Access denied due to prohibited access */</span></div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa5fa7d65262e81125cecb27e80a26ce98">EACCES</a>);     <span class="comment">/* POSIX Permission denied (POSIX.1) */</span></div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca3dec4eba481cdf5e99d7cd6009e6dcf8">FR_INVALID_OBJECT</a>:  <span class="comment">/* FatFS (9) The file/directory object is invalid */</span></div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa7bfd237190819a0a272db7b0aa61d5c8">EINVAL</a>);     <span class="comment">/* POSIX Invalid argument (POSIX.1) */</span></div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cac3afbb423b1d4497229416812aff383b">FR_WRITE_PROTECTED</a>: <span class="comment">/* FatFS (10) The physical drive is write protected */</span></div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa56198247acea7520ae5c6005fbe76a31">EROFS</a>);       <span class="comment">/* POSIX Read-only filesystem (POSIX.1) */</span></div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca487844af77de15f6932a3b41ef3a2d65">FR_INVALID_DRIVE</a>:   <span class="comment">/* FatFS (11) The logical drive number is invalid */</span></div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa1c0d17ac093eff038b479dba021361bb">ENXIO</a>);       <span class="comment">/* POSIX No such device or address (POSIX.1) */</span></div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160;</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cafc56605c68aaffab4a428339a8bd600d">FR_NOT_ENABLED</a>:     <span class="comment">/* FatFS (12) The volume has no work area */</span></div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa2b5265f4c8556b15ec913f61caade1eb">ENOSPC</a>);     <span class="comment">/* POSIX No space left on device (POSIX.1) */</span></div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160;</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca086154b5fee763f28c49fd0e2c1cb463">FR_NO_FILESYSTEM</a>:   <span class="comment">/* FatFS (13) There is no valid FAT volume */</span></div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;            <span class="keywordflow">return</span>(<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa1c0d17ac093eff038b479dba021361bb">ENXIO</a>);       <span class="comment">/* POSIX No such device or address (POSIX.1) */</span></div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160;</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca4b02760f758f5b1a89f445244fe9fbca">FR_MKFS_ABORTED</a>:    <span class="comment">/* FatFS (14) The f_mkfs() aborted due to any parameter error */</span></div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa7bfd237190819a0a272db7b0aa61d5c8">EINVAL</a>);     <span class="comment">/* POSIX Invalid argument (POSIX.1) */</span></div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca3f8ca7e51af8b129d14328de7243c5d4">FR_TIMEOUT</a>:         <span class="comment">/* FatFS (15) Could not get a grant to access the volume within defined period */</span></div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa9e2f813a51a5763a892f4b1783778e4b">EBUSY</a>);      <span class="comment">/* POSIX Device or resource busy (POSIX.1) */</span></div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca7db5afaaa2af591bd4a208b2967075d7">FR_LOCKED</a>:          <span class="comment">/* FatFS (16) The operation is rejected according to the file sharing policy */</span></div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa9e2f813a51a5763a892f4b1783778e4b">EBUSY</a>);      <span class="comment">/* POSIX Device or resource busy (POSIX.1) */</span></div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160;</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44caf56a76a86602cbdeb2c4f3d00cfad21c">FR_NOT_ENOUGH_CORE</a>: <span class="comment">/* FatFS (17) LFN working buffer could not be allocated */</span></div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aaec0aa1bb79e2e55ed6d8c165e0611eca">ENOMEM</a>);     <span class="comment">/* POSIX Not enough space (POSIX.1) */</span></div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca50dd3c3c274ccebb2cfbddde9d065bb9">FR_TOO_MANY_OPEN_FILES</a>:<span class="comment">/* FatFS (18) Number of open files &gt; _FS_SHARE */</span></div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa0191be5a8b35e30991789c9fe4b2c4cf">EMFILE</a>);     <span class="comment">/* POSIX Too many open files (POSIX.1) */</span></div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160;</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca3b89faeceab64db277d0fcdeaaa315d6">FR_INVALID_PARAMETER</a>:<span class="comment">/* FatFS (19) Given parameter is invalid */</span></div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;            <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa7bfd237190819a0a272db7b0aa61d5c8">EINVAL</a>);     <span class="comment">/* POSIX Invalid argument (POSIX.1) */</span></div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160;</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;    }</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;    <span class="keywordflow">return</span> (<a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa952ba8aa5afef31b7893ed91ae13a56c">EBADMSG</a>);            <span class="comment">/* POSIX Bad message (POSIX.1) */</span></div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;}</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02190"></a><span class="lineno"><a class="line" href="posix_8h.html#a81f14429660ca6a685676d6ceaf5350c"> 2190</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a81f14429660ca6a685676d6ceaf5350c">fatfs_to_fileno</a>(<a class="code" href="structFIL.html">FIL</a> *fh)</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;{</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160;    <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160;    {</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160;    }</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160;    <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="posix_8h.html#a2c5eecb22513a88c24ae5831a3265e54">MAX_FILES</a>;++i)</div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160;    {</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;        stream = __iob[i];</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160;        <span class="keywordflow">if</span>(stream)</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;        {</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;            <span class="keywordflow">if</span>( fh == (<a class="code" href="structFIL.html">FIL</a> *) <a class="code" href="posix_8h.html#ac04f5faa8e86a4ce4ae084d85386af40">fdev_get_udata</a>(stream) )</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;                <span class="keywordflow">return</span>(i);</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160;        }</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;    }</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160;    <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160;}</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160;</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02227"></a><span class="lineno"><a class="line" href="posix_8h.html#a178d5d21b21c0f60d6ff8dfbbc0d86f5"> 2227</a></span>&#160;<a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a> <a class="code" href="posix_8c.html#a178d5d21b21c0f60d6ff8dfbbc0d86f5">fat_time_to_unix</a>(<a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> date, <a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> <a class="code" href="time_8c.html#a32b1cbd925752f0cd61d202bbe204a69">time</a>)</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;{</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160;    <span class="keyword">struct </span><a class="code" href="structtm.html">tm</a> tp;</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;    <a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a> unix;</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160;</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;    memset(&amp;tp, 0, <span class="keyword">sizeof</span>(<span class="keyword">struct</span> <a class="code" href="structtm.html">tm</a>));</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160;</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160;    tp.<a class="code" href="structtm.html#a4d098a9a5c03a00b2ee61e10851de81e">tm_sec</a> = (time &lt;&lt; 1) &amp; 0x3e;               <span class="comment">// 2 second resolution</span></div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160;    tp.<a class="code" href="structtm.html#af414eb7c86cc3099595211eee4d4211b">tm_min</a> = ((time &gt;&gt; 5) &amp; 0x3f);</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;    tp.<a class="code" href="structtm.html#a3e7ca4e37f1abcaf56b8a916c38eb9fe">tm_hour</a> = ((time &gt;&gt; 11) &amp; 0x1f);</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160;    tp.<a class="code" href="structtm.html#ab8d8904bad43b0c8b96e61941c5b5310">tm_mday</a> = (date &amp; 0x1f);</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160;    tp.<a class="code" href="structtm.html#a112ac36fa2f593777138a417cf031e17">tm_mon</a> = ((date &gt;&gt; 5) &amp; 0x0f) - 1;</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;    tp.<a class="code" href="structtm.html#a33adf78fd6476b2120ce3b9c4a852053">tm_year</a> = ((date &gt;&gt; 9) &amp; 0x7f) + 80;</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;    unix = <a class="code" href="time_8c.html#a8386ff819a39512ea00cfc78ce5a27d5">timegm</a>( &amp;tp );</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160;    <span class="keywordflow">return</span>( unix );</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;}</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160;</div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02252"></a><span class="lineno"><a class="line" href="posix_8h.html#aa5666c514336f78c6d1ab6bc35c74ae0"> 2252</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="posix_8c.html#aa5666c514336f78c6d1ab6bc35c74ae0">unix_time_to_fat</a>(<a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a> epoch, <a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> *date, <a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a> *<a class="code" href="time_8c.html#a32b1cbd925752f0cd61d202bbe204a69">time</a>)</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160;{</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160;    <a class="code" href="structtm.html">tm_t</a> *t = <a class="code" href="time_8c.html#a10fe08d03c4c3da23d1e1c059f4cf3a5">gmtime</a>((<a class="code" href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a> *) &amp;epoch);</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160;</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;<span class="comment">/* Pack date and time into a uint32_t variable */</span></div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;    *date = ((<a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>)(t-&gt;<a class="code" href="structtm.html#a33adf78fd6476b2120ce3b9c4a852053">tm_year</a> - 80) &lt;&lt; 9)</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160;        | (((<a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>)t-&gt;<a class="code" href="structtm.html#a112ac36fa2f593777138a417cf031e17">tm_mon</a>+1) &lt;&lt; 5)</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;        | (((<a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>)t-&gt;<a class="code" href="structtm.html#ab8d8904bad43b0c8b96e61941c5b5310">tm_mday</a>));</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160;    *time = ((<a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>)t-&gt;<a class="code" href="structtm.html#a3e7ca4e37f1abcaf56b8a916c38eb9fe">tm_hour</a> &lt;&lt; 11)</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160;        | ((<a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>)t-&gt;<a class="code" href="structtm.html#af414eb7c86cc3099595211eee4d4211b">tm_min</a> &lt;&lt; 5)</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;        | ((<a class="code" href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a>)t-&gt;<a class="code" href="structtm.html#a4d098a9a5c03a00b2ee61e10851de81e">tm_sec</a> &gt;&gt; 1);</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160;}</div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160;</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02276"></a><span class="lineno"><a class="line" href="posix_8h.html#a9b859123258b36eb57f4f71d2606d8a5"> 2276</a></span>&#160;<a class="code" href="structFIL.html">FIL</a> *<a class="code" href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a>(<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>)</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;{</div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160;</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>( fileno ))</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160;    {</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;    }</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160;    <span class="comment">// checks if fileno out of bounds</span></div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;    stream = <a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(fileno);</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160;    <span class="keywordflow">if</span>( stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> )</div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;</div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160;    fh = <a class="code" href="posix_8h.html#ac04f5faa8e86a4ce4ae084d85386af40">fdev_get_udata</a>(stream);</div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;    <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160;    {</div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160;        <span class="keywordflow">return</span>(<a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>);</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160;    }</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;    <span class="keywordflow">return</span>(fh);</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160;}</div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160;</div><div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;</div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160;</div><div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02311"></a><span class="lineno"><a class="line" href="posix_8h.html#a38496612f759733234128893e4c60a89"> 2311</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a38496612f759733234128893e4c60a89">free_file_descriptor</a>(<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>)</div><div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160;{</div><div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;</div><div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>( fileno ))</div><div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160;    {</div><div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;        <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a>;</div><div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160;    }</div><div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160;</div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;    <span class="comment">// checks if fileno out of bounds</span></div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160;    stream = <a class="code" href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a>(fileno);</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160;    <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160;    {</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;    }</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160;</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;    fh = <a class="code" href="posix_8h.html#ac04f5faa8e86a4ce4ae084d85386af40">fdev_get_udata</a>(stream);</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160;</div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;    <span class="keywordflow">if</span>(fh != <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;    {</div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160;        <a class="code" href="system_8c.html#a61f06ee340417c629633142e0a5db288">safefree</a>(fh);</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160;    }</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;</div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160;    <span class="keywordflow">if</span>(stream-&gt;<a class="code" href="struct____file.html#a3e5a85ae919a90efbb7cb44ccb54fe46">buf</a> != <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a> &amp;&amp; stream-&gt;<a class="code" href="struct____file.html#a8d11df8679502efee09740f97d7c277b">flags</a> &amp; <a class="code" href="posix_8h.html#a910f0d9b3aff8a868393ce38fe91cc7d">__SMALLOC</a>)</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160;    {</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160;        <a class="code" href="system_8c.html#a61f06ee340417c629633142e0a5db288">safefree</a>(stream-&gt;<a class="code" href="struct____file.html#a3e5a85ae919a90efbb7cb44ccb54fe46">buf</a>);</div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;    }</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160;</div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160;    __iob[<a class="code" href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a>]  = <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>;</div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;    <a class="code" href="system_8c.html#a61f06ee340417c629633142e0a5db288">safefree</a>(stream);</div><div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160;    <span class="keywordflow">return</span>(fileno);</div><div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;}</div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160;</div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160;</div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160;</div><div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160;<span class="comment"></span><a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02355"></a><span class="lineno"><a class="line" href="posix_8h.html#abab788c42cce343cde2f5b8f90015229"> 2355</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#abab788c42cce343cde2f5b8f90015229">new_file_descriptor</a>( <span class="keywordtype">void</span> )</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;{</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160;    <span class="keywordtype">int</span> i;</div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;    <a class="code" href="struct____file.html">FILE</a> *stream;</div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;    <a class="code" href="structFIL.html">FIL</a> *fh;</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160;</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160;    <span class="keywordflow">for</span>(i=0;i&lt;<a class="code" href="posix_8h.html#a2c5eecb22513a88c24ae5831a3265e54">MAX_FILES</a>;++i)</div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160;    {</div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;        <span class="keywordflow">if</span>(<a class="code" href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a>(i))</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160;            <span class="keywordflow">continue</span>;</div><div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160;        <span class="keywordflow">if</span>( __iob[i] == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160;        {</div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;            stream = (<a class="code" href="struct____file.html">FILE</a> *) <a class="code" href="system_8c.html#a65ca18fba3d6cdb9ce8ca8040a96e0c5">safecalloc</a>(<span class="keyword">sizeof</span>(<a class="code" href="struct____file.html">FILE</a>),1);</div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160;            <span class="keywordflow">if</span>(stream == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;            {</div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;                <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aaec0aa1bb79e2e55ed6d8c165e0611eca">ENOMEM</a>;</div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160;                <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160;            }</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160;            fh = (<a class="code" href="structFIL.html">FIL</a> *) <a class="code" href="system_8c.html#a65ca18fba3d6cdb9ce8ca8040a96e0c5">safecalloc</a>(<span class="keyword">sizeof</span>(<a class="code" href="structFIL.html">FIL</a>),1);</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160;            <span class="keywordflow">if</span>(fh == <a class="code" href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a>)</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;            {</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160;                <a class="code" href="system_8c.html#a61f06ee340417c629633142e0a5db288">safefree</a>(stream);</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160;                <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aaec0aa1bb79e2e55ed6d8c165e0611eca">ENOMEM</a>;</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;                <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160;            }</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160;            __iob[i]  = stream;</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160;            <a class="code" href="posix_8h.html#a793fcb8f10b6b8746d4186012929ddf1">fdev_set_udata</a>(stream, (<span class="keywordtype">void</span> *) fh);</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160;            <span class="keywordflow">return</span>(i);</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;        }</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160;    }</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;    <a class="code" href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a> = <a class="code" href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aaf8ee28f2eeab568a1b641f6ffc1f90a8">ENFILE</a>;</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160;    <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160;}</div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;</div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02418"></a><span class="lineno"><a class="line" href="posix_8h.html#a607feb06d296e0ff60d5a19538bd17fc"> 2418</a></span>&#160;<span class="keywordtype">int</span> <a class="code" href="posix_8c.html#a607feb06d296e0ff60d5a19538bd17fc">posix_fopen_modes_to_open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *mode)</div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;{</div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160;    <span class="keywordtype">int</span> flag = 0;</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode,<span class="stringliteral">&quot;r&quot;</span>) || <a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode,<span class="stringliteral">&quot;rb&quot;</span>))</div><div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160;    {</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160;        flag = <a class="code" href="posix_8h.html#a7a68c9ffaac7dbcd652225dd7c06a54b">O_RDONLY</a>;</div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;        <span class="keywordflow">return</span>(flag);</div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160;    }</div><div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode,<span class="stringliteral">&quot;r+&quot;</span>) || <a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode, <span class="stringliteral">&quot;r+b&quot;</span> ) || <a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode, <span class="stringliteral">&quot;rb+&quot;</span> ))</div><div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160;    {</div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;        flag = <a class="code" href="posix_8h.html#abb0586253488ee61072b73557eeb873b">O_RDWR</a> | <a class="code" href="posix_8h.html#ad1d67e453fb3031f40f8cd3403773813">O_TRUNC</a>;</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160;        <span class="keywordflow">return</span>(flag);</div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160;    }</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode,<span class="stringliteral">&quot;w&quot;</span>) || <a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode,<span class="stringliteral">&quot;wb&quot;</span>))</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;    {</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;        flag = <a class="code" href="posix_8h.html#a11b644a8526139c4cc1850dac1271ced">O_WRONLY</a> | <a class="code" href="posix_8h.html#a1cf6b1de1fffedaa1d26b189e9a8d2cc">O_CREAT</a> | <a class="code" href="posix_8h.html#ad1d67e453fb3031f40f8cd3403773813">O_TRUNC</a>;</div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160;        <span class="keywordflow">return</span>(flag);</div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;    }</div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode,<span class="stringliteral">&quot;w+&quot;</span>) || <a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode, <span class="stringliteral">&quot;w+b&quot;</span> ) || <a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode, <span class="stringliteral">&quot;wb+&quot;</span> ))</div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;    {</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160;        flag = <a class="code" href="posix_8h.html#abb0586253488ee61072b73557eeb873b">O_RDWR</a> | <a class="code" href="posix_8h.html#a1cf6b1de1fffedaa1d26b189e9a8d2cc">O_CREAT</a> | <a class="code" href="posix_8h.html#ad1d67e453fb3031f40f8cd3403773813">O_TRUNC</a>;</div><div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160;        <span class="keywordflow">return</span>(flag);</div><div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160;    }</div><div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode,<span class="stringliteral">&quot;a&quot;</span>) || <a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode,<span class="stringliteral">&quot;ab&quot;</span>))</div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160;    {</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160;        flag = <a class="code" href="posix_8h.html#a11b644a8526139c4cc1850dac1271ced">O_WRONLY</a> | <a class="code" href="posix_8h.html#a1cf6b1de1fffedaa1d26b189e9a8d2cc">O_CREAT</a> | <a class="code" href="posix_8h.html#ae036f789407d21f07b211552d67b3214">O_APPEND</a>;</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160;        <span class="keywordflow">return</span>(flag);</div><div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160;    }</div><div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160;    <span class="keywordflow">if</span>(<a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode,<span class="stringliteral">&quot;a+&quot;</span>) || <a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode, <span class="stringliteral">&quot;a+b&quot;</span> ) || <a class="code" href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a>(mode, <span class="stringliteral">&quot;ab+&quot;</span> ))</div><div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160;    {</div><div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160;        flag = <a class="code" href="posix_8h.html#abb0586253488ee61072b73557eeb873b">O_RDWR</a> | <a class="code" href="posix_8h.html#a1cf6b1de1fffedaa1d26b189e9a8d2cc">O_CREAT</a> | <a class="code" href="posix_8h.html#ae036f789407d21f07b211552d67b3214">O_APPEND</a>;</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160;        <span class="keywordflow">return</span>(-1);</div><div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160;    }</div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160;    <span class="keywordflow">return</span>(-1);                                   <span class="comment">// nvalid mode</span></div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160;}</div><div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160;</div><div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;<span class="comment"></span><span class="comment">// =============================================</span></div><div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160;<span class="comment">// =============================================</span></div><div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160;</div><div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160;</div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160;</div><div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02468"></a><span class="lineno"><a class="line" href="posix_8c.html#a2b4462e4e183cf38f0e7c3674be496e2"> 2468</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="posix_8c.html#a2b4462e4e183cf38f0e7c3674be496e2">_fprintf_putc</a>(<span class="keyword">struct</span> <a class="code" href="struct__printf__t.html">_printf_t</a> *p, <span class="keywordtype">char</span> ch)</div><div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160;{</div><div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160;        p-&gt;<a class="code" href="struct__printf__t.html#a872716fd701166cd57bd3fffb7b77706">sent</a>++;</div><div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160;        <a class="code" href="posix_8c.html#a6bdef0a37397953c3b0f14c4d5d0eb10">fputc</a>(ch, (<a class="code" href="struct____file.html">FILE</a> *) p-&gt;<a class="code" href="struct__printf__t.html#ad35884151d0be6667caafad8caacc76f">buffer</a>);</div><div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;}</div><div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160;</div><div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160;</div><div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160;<a class="code" href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;<span class="keywordtype">int</span></div><div class="line"><a name="l02484"></a><span class="lineno"><a class="line" href="posix_8h.html#a91ade11061b9b43b1edd37ff32f76591"> 2484</a></span>&#160;<a class="code" href="posix_8c.html#a91ade11061b9b43b1edd37ff32f76591">fprintf</a>(<a class="code" href="struct____file.html">FILE</a> *fp, <span class="keyword">const</span> <span class="keywordtype">char</span> *format, ...)</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160;{</div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160;    <a class="code" href="struct__printf__t.html">printf_t</a> fn;</div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160;    va_list va;</div><div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160;</div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160;    fn.<a class="code" href="struct__printf__t.html#a3ef8eb0143b93d4446b04c6ce9313be7">put</a> = <a class="code" href="posix_8c.html#a2b4462e4e183cf38f0e7c3674be496e2">_fprintf_putc</a>;</div><div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160;    fn.<a class="code" href="struct__printf__t.html#a872716fd701166cd57bd3fffb7b77706">sent</a> = 0;</div><div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160;    fn.<a class="code" href="struct__printf__t.html#ad35884151d0be6667caafad8caacc76f">buffer</a> = (<span class="keywordtype">void</span> *) fp;</div><div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160;</div><div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160;    va_start(va, format);</div><div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160;    <a class="code" href="mathio_8h.html#a1c2762f15e2ae4dea9b52ee9e3532372">_printf_fn</a>(&amp;fn, format, va);</div><div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160;    va_end(va);</div><div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160;</div><div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160;    <span class="keywordflow">return</span> ((<span class="keywordtype">int</span>)fn.<a class="code" href="struct__printf__t.html#a872716fd701166cd57bd3fffb7b77706">sent</a>);</div><div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160;}</div><div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160;</div><div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa0191be5a8b35e30991789c9fe4b2c4cf"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa0191be5a8b35e30991789c9fe4b2c4cf">EMFILE</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00087">posix.h:87</a></div></div>
<div class="ttc" id="posix_8h_html_a793fcb8f10b6b8746d4186012929ddf1"><div class="ttname"><a href="posix_8h.html#a793fcb8f10b6b8746d4186012929ddf1">fdev_set_udata</a></div><div class="ttdeci">#define fdev_set_udata(stream, u)</div><div class="ttdoc">device IO udata </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00291">posix.h:291</a></div></div>
<div class="ttc" id="posix_8c_html_abab788c42cce343cde2f5b8f90015229"><div class="ttname"><a href="posix_8c.html#abab788c42cce343cde2f5b8f90015229">new_file_descriptor</a></div><div class="ttdeci">MEMSPACE int new_file_descriptor(void)</div><div class="ttdoc">Allocate a POSIX FILE descriptor. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02355">posix.c:2355</a></div></div>
<div class="ttc" id="ff_8c_html_a7a27f3b36634e7031af1f60b94beea40"><div class="ttname"><a href="ff_8c.html#a7a27f3b36634e7031af1f60b94beea40">f_closedir</a></div><div class="ttdeci">MEMSPACE FRESULT f_closedir(DIR *dp)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04226">ff.c:4226</a></div></div>
<div class="ttc" id="posix_8c_html_ae59fd612372df957f59fb3cdcbd8b9e9"><div class="ttname"><a href="posix_8c.html#ae59fd612372df957f59fb3cdcbd8b9e9">putc</a></div><div class="ttdeci">MEMSPACE int putc(int c, FILE *stream)</div><div class="ttdoc">Put a character to a stream See fdevopen() sets stream-&gt;put get for TTY devices. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00401">posix.c:401</a></div></div>
<div class="ttc" id="structdirent_html_ae61380f3ccbc6c32e8650d7bce76197b"><div class="ttname"><a href="structdirent.html#ae61380f3ccbc6c32e8650d7bce76197b">dirent::d_name</a></div><div class="ttdeci">char d_name[MAX_NAME_LEN]</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00144">posix.h:144</a></div></div>
<div class="ttc" id="structtm_html_af414eb7c86cc3099595211eee4d4211b"><div class="ttname"><a href="structtm.html#af414eb7c86cc3099595211eee4d4211b">tm::tm_min</a></div><div class="ttdeci">int tm_min</div><div class="ttdef"><b>Definition:</b> <a href="time_8h_source.html#l00044">time.h:44</a></div></div>
<div class="ttc" id="posix_8h_html_ae6774871a90d9442f00abe18b87fee6e"><div class="ttname"><a href="posix_8h.html#ae6774871a90d9442f00abe18b87fee6e">S_IWGRP</a></div><div class="ttdeci">#define S_IWGRP</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00227">posix.h:227</a></div></div>
<div class="ttc" id="posix_8c_html_a31986cce890109c211ccb14151aafd0e"><div class="ttname"><a href="posix_8c.html#a31986cce890109c211ccb14151aafd0e">isatty</a></div><div class="ttdeci">MEMSPACE int isatty(int fileno)</div><div class="ttdoc">Test POSIX fileno if it is a Serial Console/TTY. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00196">posix.c:196</a></div></div>
<div class="ttc" id="stringsup_8c_html_abee00aec80e542c31b536a531ffe761a"><div class="ttname"><a href="stringsup_8c.html#abee00aec80e542c31b536a531ffe761a">strcmp</a></div><div class="ttdeci">MEMSPACE int WEAK_ATR strcmp(const char *str, const char *pat)</div><div class="ttdoc">Compare two strings. </div><div class="ttdef"><b>Definition:</b> <a href="stringsup_8c_source.html#l00362">stringsup.c:362</a></div></div>
<div class="ttc" id="posix_8c_html_a9b859123258b36eb57f4f71d2606d8a5"><div class="ttname"><a href="posix_8c.html#a9b859123258b36eb57f4f71d2606d8a5">fileno_to_fatfs</a></div><div class="ttdeci">MEMSPACE FIL * fileno_to_fatfs(int fileno)</div><div class="ttdoc">Convert POSIX fileno to FatFS handle NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02276">posix.c:2276</a></div></div>
<div class="ttc" id="posix_8c_html_abb875e56516d235a6aaf69951444cc63"><div class="ttname"><a href="posix_8c.html#abb875e56516d235a6aaf69951444cc63">lseek</a></div><div class="ttdeci">MEMSPACE off_t lseek(int fileno, off_t position, int whence)</div><div class="ttdoc">POSIX seek to file position. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00617">posix.c:617</a></div></div>
<div class="ttc" id="send_8c_html_a273cf69d639a59973b6019625df33e30"><div class="ttname"><a href="send_8c.html#a273cf69d639a59973b6019625df33e30">uint16_t</a></div><div class="ttdeci">unsigned short uint16_t</div><div class="ttdef"><b>Definition:</b> <a href="send_8c_source.html#l00018">send.c:18</a></div></div>
<div class="ttc" id="stringsup_8c_html_a895ea3a2f9901e4c962806cc15271339"><div class="ttname"><a href="stringsup_8c.html#a895ea3a2f9901e4c962806cc15271339">strlen</a></div><div class="ttdeci">MEMSPACE size_t WEAK_ATR strlen(const char *str)</div><div class="ttdoc">String Length. </div><div class="ttdef"><b>Definition:</b> <a href="stringsup_8c_source.html#l00146">stringsup.c:146</a></div></div>
<div class="ttc" id="posix_8h_html_a0a88f1032e29e7cc97a96b40cdc996a5"><div class="ttname"><a href="posix_8h.html#a0a88f1032e29e7cc97a96b40cdc996a5">FATFS_X</a></div><div class="ttdeci">#define FATFS_X</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00244">posix.h:244</a></div></div>
<div class="ttc" id="posix_8c_html_a0b33c90b99d00a8bd2595f254d1409e1"><div class="ttname"><a href="posix_8c.html#a0b33c90b99d00a8bd2595f254d1409e1">baseext</a></div><div class="ttdeci">MEMSPACE char * baseext(char *str)</div><div class="ttdoc">File extention of a file name. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01466">posix.c:1466</a></div></div>
<div class="ttc" id="posix_8h_html_a7a68c9ffaac7dbcd652225dd7c06a54b"><div class="ttname"><a href="posix_8h.html#a7a68c9ffaac7dbcd652225dd7c06a54b">O_RDONLY</a></div><div class="ttdeci">#define O_RDONLY</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00187">posix.h:187</a></div></div>
<div class="ttc" id="posix_8c_html_a111f2e6e6bc9f0a46210a323cab093c7"><div class="ttname"><a href="posix_8c.html#a111f2e6e6bc9f0a46210a323cab093c7">dump_stat</a></div><div class="ttdeci">MEMSPACE void dump_stat(struct stat *sp)</div><div class="ttdoc">Display struct stat, from POSIX stat(0 or fstat(), in ASCII. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01260">posix.c:1260</a></div></div>
<div class="ttc" id="struct____file_html_a2d816b077c3af0425344fe4b283dad33"><div class="ttname"><a href="struct____file.html#a2d816b077c3af0425344fe4b283dad33">__file::get</a></div><div class="ttdeci">int(* get)(struct __file *)</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00178">posix.h:178</a></div></div>
<div class="ttc" id="posix_8c_html_a3e5e6f96d36b5cdacfaf6b3976cd5af2"><div class="ttname"><a href="posix_8c.html#a3e5e6f96d36b5cdacfaf6b3976cd5af2">open</a></div><div class="ttdeci">MEMSPACE int open(const char *pathname, int flags)</div><div class="ttdoc">POSIX Open a file with integer mode flags. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00895">posix.c:895</a></div></div>
<div class="ttc" id="structstat_html_a1b4b858db1ebe79c3d6e0fc1ef721024"><div class="ttname"><a href="structstat.html#a1b4b858db1ebe79c3d6e0fc1ef721024">stat::st_ctime</a></div><div class="ttdeci">time_t st_ctime</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00119">posix.h:119</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa7bfd237190819a0a272db7b0aa61d5c8"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa7bfd237190819a0a272db7b0aa61d5c8">EINVAL</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00085">posix.h:85</a></div></div>
<div class="ttc" id="posix_8c_html_a03baa4d851a2a855656081a4b7c8d72c"><div class="ttname"><a href="posix_8c.html#a03baa4d851a2a855656081a4b7c8d72c">clrerror</a></div><div class="ttdeci">MEMSPACE void clrerror(FILE *stream)</div><div class="ttdoc">clrerror resets stream EOF and error flags </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01786">posix.c:1786</a></div></div>
<div class="ttc" id="ff_8c_html_abecaaa3eb194f786ab6042cf3b5e4ee7"><div class="ttname"><a href="ff_8c.html#abecaaa3eb194f786ab6042cf3b5e4ee7">f_write</a></div><div class="ttdeci">MEMSPACE FRESULT f_write(FIL *fp, const void *buff, UINT btw, UINT *bw)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l03607">ff.c:3607</a></div></div>
<div class="ttc" id="posix_8c_html_a8f7f00d4ec0d99440762b0a664aebf70"><div class="ttname"><a href="posix_8c.html#a8f7f00d4ec0d99440762b0a664aebf70">sync</a></div><div class="ttdeci">MEMSPACE void sync(void)</div><div class="ttdoc">POSIX Sync all pending file changes and metadata on ALL files. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01069">posix.c:1069</a></div></div>
<div class="ttc" id="posix_8c_html_a1508fedaef509d2976b43300306d1400"><div class="ttname"><a href="posix_8c.html#a1508fedaef509d2976b43300306d1400">readdir</a></div><div class="ttdeci">dirent_t * readdir(DIR *dirp)</div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01755">posix.c:1755</a></div></div>
<div class="ttc" id="user__config_8h_html"><div class="ttname"><a href="user__config_8h.html">user_config.h</a></div><div class="ttdoc">Master include file for project Includes all project includes and defines here. </div></div>
<div class="ttc" id="posix_8c_html_adfd015ed8dbac3473269d1a068bf5904"><div class="ttname"><a href="posix_8c.html#adfd015ed8dbac3473269d1a068bf5904">fatfs_putc</a></div><div class="ttdeci">MEMSPACE int fatfs_putc(char c, FILE *stream)</div><div class="ttdoc">Private FatFs function called by fputc() to put a byte from file stream NOT POSIX open() assigns stre...</div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02074">posix.c:2074</a></div></div>
<div class="ttc" id="structFILINFO_html_a7c01c48a15b1b49da459924437b0bd52"><div class="ttname"><a href="structFILINFO.html#a7c01c48a15b1b49da459924437b0bd52">FILINFO::fdate</a></div><div class="ttdeci">WORD fdate</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00205">ff.h:205</a></div></div>
<div class="ttc" id="structFILINFO_html"><div class="ttname"><a href="structFILINFO.html">FILINFO</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00203">ff.h:203</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa9e2f813a51a5763a892f4b1783778e4b"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa9e2f813a51a5763a892f4b1783778e4b">EBUSY</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00079">posix.h:79</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca83e45a4b579558c57192c0a391b9bb45"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca83e45a4b579558c57192c0a391b9bb45">FR_INVALID_NAME</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00227">ff.h:227</a></div></div>
<div class="ttc" id="posix_8c_html_a38496612f759733234128893e4c60a89"><div class="ttname"><a href="posix_8c.html#a38496612f759733234128893e4c60a89">free_file_descriptor</a></div><div class="ttdeci">MEMSPACE int free_file_descriptor(int fileno)</div><div class="ttdoc">Free POSIX fileno FILE descriptor. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02311">posix.c:2311</a></div></div>
<div class="ttc" id="posix_8c_html_a48dc1df1627501d3faed4bf1f9801759"><div class="ttname"><a href="posix_8c.html#a48dc1df1627501d3faed4bf1f9801759">close</a></div><div class="ttdeci">MEMSPACE int close(int fileno)</div><div class="ttdoc">POSIX Close a file with fileno handel. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00685">posix.c:685</a></div></div>
<div class="ttc" id="ff_8c_html_ab007bc58e2fdfc5d1ae8e87796e73965"><div class="ttname"><a href="ff_8c.html#ab007bc58e2fdfc5d1ae8e87796e73965">f_chmod</a></div><div class="ttdeci">MEMSPACE FRESULT f_chmod(const TCHAR *path, BYTE attr, BYTE mask)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04823">ff.c:4823</a></div></div>
<div class="ttc" id="bdffontutil_8h_html_a4d192fe48cb19d0ef5a88c52ed23cf4c"><div class="ttname"><a href="bdffontutil_8h.html#a4d192fe48cb19d0ef5a88c52ed23cf4c">MATCH</a></div><div class="ttdeci">#define MATCH(a, b)</div><div class="ttdef"><b>Definition:</b> <a href="bdffontutil_8h_source.html#l00039">bdffontutil.h:39</a></div></div>
<div class="ttc" id="posix_8c_html_ad31144743f0014784193221563ca8dd2"><div class="ttname"><a href="posix_8c.html#ad31144743f0014784193221563ca8dd2">fseek</a></div><div class="ttdeci">MEMSPACE int fseek(FILE *stream, long offset, int whence)</div><div class="ttdoc">POSIX seek to file possition. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00545">posix.c:545</a></div></div>
<div class="ttc" id="structtm_html_ab8d8904bad43b0c8b96e61941c5b5310"><div class="ttname"><a href="structtm.html#ab8d8904bad43b0c8b96e61941c5b5310">tm::tm_mday</a></div><div class="ttdeci">int tm_mday</div><div class="ttdef"><b>Definition:</b> <a href="time_8h_source.html#l00046">time.h:46</a></div></div>
<div class="ttc" id="posix_8h_html_aac46e03c2018bada012333c31f41df12"><div class="ttname"><a href="posix_8h.html#aac46e03c2018bada012333c31f41df12">off_t</a></div><div class="ttdeci">uint32_t off_t</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00051">posix.h:51</a></div></div>
<div class="ttc" id="posix_8h_html_ac5a6f01348af03d4c2cdd9d557880c4d"><div class="ttname"><a href="posix_8h.html#ac5a6f01348af03d4c2cdd9d557880c4d">FATFS_R</a></div><div class="ttdeci">#define FATFS_R</div><div class="ttdoc">FATFS open modes. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00242">posix.h:242</a></div></div>
<div class="ttc" id="posix_8h_html_af8f4385bb42836d1e3ad4fea9d71d1b9"><div class="ttname"><a href="posix_8h.html#af8f4385bb42836d1e3ad4fea9d71d1b9">mode_t</a></div><div class="ttdeci">uint32_t mode_t</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00047">posix.h:47</a></div></div>
<div class="ttc" id="posix_8h_html_ae036f789407d21f07b211552d67b3214"><div class="ttname"><a href="posix_8h.html#ae036f789407d21f07b211552d67b3214">O_APPEND</a></div><div class="ttdeci">#define O_APPEND</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00195">posix.h:195</a></div></div>
<div class="ttc" id="structFATFS_html"><div class="ttname"><a href="structFATFS.html">FATFS</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00092">ff.h:92</a></div></div>
<div class="ttc" id="posix_8c_html_ac9195b3de02e450cfdeea1ce97b32da4"><div class="ttname"><a href="posix_8c.html#ac9195b3de02e450cfdeea1ce97b32da4">putchar</a></div><div class="ttdeci">MEMSPACE int putchar(int c)</div><div class="ttdoc">put a character to stdout See fdevopen() sets stream-&gt;put get for TTY devices </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00351">posix.c:351</a></div></div>
<div class="ttc" id="posix_8c_html_a3759827e157badd49d076bd157f508d9"><div class="ttname"><a href="posix_8c.html#a3759827e157badd49d076bd157f508d9">fgets</a></div><div class="ttdeci">MEMSPACE char * fgets(char *str, int size, FILE *stream)</div><div class="ttdoc">get a string from stdin See fdevopen() sets stream-&gt;put get for TTY devices </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00420">posix.c:420</a></div></div>
<div class="ttc" id="posix_8c_html_a8e661c338f41695d1a1e70aed6255e2d"><div class="ttname"><a href="posix_8c.html#a8e661c338f41695d1a1e70aed6255e2d">fopen</a></div><div class="ttdeci">MEMSPACE FILE * fopen(const char *path, const char *mode)</div><div class="ttdoc">POSIX Open a file with path name and ascii file mode string. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00782">posix.c:782</a></div></div>
<div class="ttc" id="posix_8h_html_a4dc4d45e07d2abc899bcaf04b2846a87"><div class="ttname"><a href="posix_8h.html#a4dc4d45e07d2abc899bcaf04b2846a87">O_ACCMODE</a></div><div class="ttdeci">#define O_ACCMODE</div><div class="ttdoc">POSIX open modes - no other combination are allowed. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00186">posix.h:186</a></div></div>
<div class="ttc" id="ff_8c_html_ae9647e339708c3d803db8de141986d96"><div class="ttname"><a href="ff_8c.html#ae9647e339708c3d803db8de141986d96">f_readdir</a></div><div class="ttdeci">MEMSPACE FRESULT f_readdir(DIR *dp, FILINFO *fno)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04260">ff.c:4260</a></div></div>
<div class="ttc" id="posix_8c_html_a6080dee579486f132062435577b77d10"><div class="ttname"><a href="posix_8c.html#a6080dee579486f132062435577b77d10">rmdir</a></div><div class="ttdeci">MEMSPACE int rmdir(const char *pathname)</div><div class="ttdoc">POSIX delete a directory. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01671">posix.c:1671</a></div></div>
<div class="ttc" id="network_8c_html_a1202cd63c360958e6272f9a20fa90f8b"><div class="ttname"><a href="network_8c.html#a1202cd63c360958e6272f9a20fa90f8b">info</a></div><div class="ttdeci">static struct ip_info info</div><div class="ttdef"><b>Definition:</b> <a href="network_8c_source.html#l00055">network.c:55</a></div></div>
<div class="ttc" id="ff_8c_html_a82160e688e49b549c8023a08517a65cb"><div class="ttname"><a href="ff_8c.html#a82160e688e49b549c8023a08517a65cb">f_rename</a></div><div class="ttdeci">MEMSPACE FRESULT f_rename(const TCHAR *path_old, const TCHAR *path_new)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04716">ff.c:4716</a></div></div>
<div class="ttc" id="structtm_html_a33adf78fd6476b2120ce3b9c4a852053"><div class="ttname"><a href="structtm.html#a33adf78fd6476b2120ce3b9c4a852053">tm::tm_year</a></div><div class="ttdeci">int tm_year</div><div class="ttdef"><b>Definition:</b> <a href="time_8h_source.html#l00048">time.h:48</a></div></div>
<div class="ttc" id="structFILINFO_html_ae0f751b79621bf7b29669f177bbe6b9a"><div class="ttname"><a href="structFILINFO.html#ae0f751b79621bf7b29669f177bbe6b9a">FILINFO::ftime</a></div><div class="ttdeci">WORD ftime</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00206">ff.h:206</a></div></div>
<div class="ttc" id="posix_8h_html_a5303f49f26293acdb9533756c78322fb"><div class="ttname"><a href="posix_8h.html#a5303f49f26293acdb9533756c78322fb">S_IWOTH</a></div><div class="ttdeci">#define S_IWOTH</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00232">posix.h:232</a></div></div>
<div class="ttc" id="send_8c_html_a435d1572bf3f880d55459d9805097f62"><div class="ttname"><a href="send_8c.html#a435d1572bf3f880d55459d9805097f62">uint32_t</a></div><div class="ttdeci">unsigned int uint32_t</div><div class="ttdef"><b>Definition:</b> <a href="send_8c_source.html#l00019">send.c:19</a></div></div>
<div class="ttc" id="ff_8h_html_a17b01553029920ac0468912b4bcb16c7"><div class="ttname"><a href="ff_8h.html#a17b01553029920ac0468912b4bcb16c7">FA_OPEN_ALWAYS</a></div><div class="ttdeci">#define FA_OPEN_ALWAYS</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00335">ff.h:335</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa5fa7d65262e81125cecb27e80a26ce98"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa5fa7d65262e81125cecb27e80a26ce98">EACCES</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00076">posix.h:76</a></div></div>
<div class="ttc" id="posix_8h_html_a170745d0d946e79c4c2a056d1d158996"><div class="ttname"><a href="posix_8h.html#a170745d0d946e79c4c2a056d1d158996">ssize_t</a></div><div class="ttdeci">int32_t ssize_t</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00055">posix.h:55</a></div></div>
<div class="ttc" id="posix_8c_html_a4ce26afbb10890d31c53a8ff76d992e3"><div class="ttname"><a href="posix_8c.html#a4ce26afbb10890d31c53a8ff76d992e3">perror</a></div><div class="ttdeci">MEMSPACE void perror(const char *s)</div><div class="ttdoc">POSIX perror() - convert POSIX errno to text with user message. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01814">posix.c:1814</a></div></div>
<div class="ttc" id="posix_8c_html_acb9e5741c01183dfe3179d646b264e5b"><div class="ttname"><a href="posix_8c.html#acb9e5741c01183dfe3179d646b264e5b">fgetpos</a></div><div class="ttdeci">MEMSPACE int fgetpos(FILE *stream, size_t *pos)</div><div class="ttdoc">POSIX get position of file stream. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00522">posix.c:522</a></div></div>
<div class="ttc" id="posix_8c_html_ac20f0fc565c27bbbb900bde3337b09b9"><div class="ttname"><a href="posix_8c.html#ac20f0fc565c27bbbb900bde3337b09b9">fatfs_to_errno</a></div><div class="ttdeci">MEMSPACE int fatfs_to_errno(FRESULT Result)</div><div class="ttdoc">Convert FafFs error result to POSIX errno. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02114">posix.c:2114</a></div></div>
<div class="ttc" id="struct____file_html"><div class="ttname"><a href="struct____file.html">__file</a></div><div class="ttdoc">FILE type structure. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00156">posix.h:156</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca487844af77de15f6932a3b41ef3a2d65"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca487844af77de15f6932a3b41ef3a2d65">FR_INVALID_DRIVE</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00232">ff.h:232</a></div></div>
<div class="ttc" id="posix_8h_html_a1cf6b1de1fffedaa1d26b189e9a8d2cc"><div class="ttname"><a href="posix_8h.html#a1cf6b1de1fffedaa1d26b189e9a8d2cc">O_CREAT</a></div><div class="ttdeci">#define O_CREAT</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00190">posix.h:190</a></div></div>
<div class="ttc" id="stringsup_8c_html_acdb13cf3724e976e98a6178baf0a3ac5"><div class="ttname"><a href="stringsup_8c.html#acdb13cf3724e976e98a6178baf0a3ac5">strncpy</a></div><div class="ttdeci">MEMSPACE WEAK_ATR char * strncpy(char *dest, const char *src, size_t size)</div><div class="ttdoc">copy a string of at most N characters </div><div class="ttdef"><b>Definition:</b> <a href="stringsup_8c_source.html#l00179">stringsup.c:179</a></div></div>
<div class="ttc" id="mathio_8h_html_a1c2762f15e2ae4dea9b52ee9e3532372"><div class="ttname"><a href="mathio_8h.html#a1c2762f15e2ae4dea9b52ee9e3532372">_printf_fn</a></div><div class="ttdeci">MEMSPACE void _printf_fn(printf_t *fn, __memx const char *fmt, va_list va)</div><div class="ttdoc">vsnprintf function </div><div class="ttdef"><b>Definition:</b> <a href="printf_8c_source.html#l00741">printf.c:741</a></div></div>
<div class="ttc" id="posix_8c_html_ab814cff71bcbcc3a72a6c399e5084573"><div class="ttname"><a href="posix_8c.html#ab814cff71bcbcc3a72a6c399e5084573">fdevopen</a></div><div class="ttdeci">MEMSPACE FILE * fdevopen(int(*put)(char, FILE *), int(*get)(FILE *))</div><div class="ttdoc">Device open functions. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01876">posix.c:1876</a></div></div>
<div class="ttc" id="posix_8h_html_aad0f32c2c182238f2ff71c83e6ab65a0"><div class="ttname"><a href="posix_8h.html#aad0f32c2c182238f2ff71c83e6ab65a0">S_ISREG</a></div><div class="ttdeci">#define S_ISREG(mode)</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00218">posix.h:218</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca897e9f2dd7629a80f48af242d8bc1a3d"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca897e9f2dd7629a80f48af242d8bc1a3d">FR_DENIED</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00228">ff.h:228</a></div></div>
<div class="ttc" id="ff_8h_html_a5e1daca7ce13cdc277e42185f7f9124f"><div class="ttname"><a href="ff_8h.html#a5e1daca7ce13cdc277e42185f7f9124f">f_tell</a></div><div class="ttdeci">#define f_tell(fp)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00284">ff.h:284</a></div></div>
<div class="ttc" id="ff_8c_html_ad55dbad62205065ba7e36ae5fc72dac6"><div class="ttname"><a href="ff_8c.html#ad55dbad62205065ba7e36ae5fc72dac6">f_read</a></div><div class="ttdeci">MEMSPACE FRESULT f_read(FIL *fp, void *buff, UINT btr, UINT *br)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l03506">ff.c:3506</a></div></div>
<div class="ttc" id="posix_8h_html_a2c5eecb22513a88c24ae5831a3265e54"><div class="ttname"><a href="posix_8h.html#a2c5eecb22513a88c24ae5831a3265e54">MAX_FILES</a></div><div class="ttdeci">#define MAX_FILES</div><div class="ttdoc">Maximum number of POSIX file handles. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00260">posix.h:260</a></div></div>
<div class="ttc" id="ff_8c_html_adab02d5c0e368f7d131ef7d7d2676c7a"><div class="ttname"><a href="ff_8c.html#adab02d5c0e368f7d131ef7d7d2676c7a">f_close</a></div><div class="ttdeci">MEMSPACE FRESULT f_close(FIL *fp)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l03808">ff.c:3808</a></div></div>
<div class="ttc" id="structdirent_html"><div class="ttname"><a href="structdirent.html">dirent</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00136">posix.h:136</a></div></div>
<div class="ttc" id="posix_8c_html_a6bdef0a37397953c3b0f14c4d5d0eb10"><div class="ttname"><a href="posix_8c.html#a6bdef0a37397953c3b0f14c4d5d0eb10">fputc</a></div><div class="ttdeci">MEMSPACE int fputc(int c, FILE *stream)</div><div class="ttdoc">Put a byte to TTY device or FatFs file stream open() or fopen() sets stream-&gt;put = fatfs_outc() for F...</div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00278">posix.c:278</a></div></div>
<div class="ttc" id="ff_8h_html_afa366963220c89b882c0361794020c14"><div class="ttname"><a href="ff_8h.html#afa366963220c89b882c0361794020c14">FA_WRITE</a></div><div class="ttdeci">#define FA_WRITE</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00331">ff.h:331</a></div></div>
<div class="ttc" id="posix_8c_html_a91ade11061b9b43b1edd37ff32f76591"><div class="ttname"><a href="posix_8c.html#a91ade11061b9b43b1edd37ff32f76591">fprintf</a></div><div class="ttdeci">MEMSPACE int fprintf(FILE *fp, const char *format,...)</div><div class="ttdoc">fprintf function Example user defined printf function using fputc for I/O This method allows I/O to d...</div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02484">posix.c:2484</a></div></div>
<div class="ttc" id="ff_8c_html_ab13b513f64fe29bc02dcba9581ab3bfa"><div class="ttname"><a href="ff_8c.html#ab13b513f64fe29bc02dcba9581ab3bfa">f_open</a></div><div class="ttdeci">MEMSPACE FRESULT f_open(FIL *fp, const TCHAR *path, BYTE mode)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l03304">ff.c:3304</a></div></div>
<div class="ttc" id="posix_8c_html_ab66b36e0fd29a0a7384efda96cef575b"><div class="ttname"><a href="posix_8c.html#ab66b36e0fd29a0a7384efda96cef575b">mkfs</a></div><div class="ttdeci">int mkfs(char *name)</div><div class="ttdoc">Formt SD card. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01922">posix.c:1922</a></div></div>
<div class="ttc" id="time_8c_html_a8386ff819a39512ea00cfc78ce5a27d5"><div class="ttname"><a href="time_8c.html#a8386ff819a39512ea00cfc78ce5a27d5">timegm</a></div><div class="ttdeci">MEMSPACE time_t timegm(tm_t *t)</div><div class="ttdoc">Convert tm_t structure as GMT time into GMT seconds since 1900. All calculactions are in GMT regardle...</div><div class="ttdef"><b>Definition:</b> <a href="time_8c_source.html#l00347">time.c:347</a></div></div>
<div class="ttc" id="posix_8c_html_a072435300ac99e8d7c3749f45166e797"><div class="ttname"><a href="posix_8c.html#a072435300ac99e8d7c3749f45166e797">write</a></div><div class="ttdeci">MEMSPACE ssize_t write(int fd, const void *buf, size_t count)</div><div class="ttdoc">POSIX Write count bytes from *buf to fileno fd. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01180">posix.c:1180</a></div></div>
<div class="ttc" id="ff_8h_html_a1f4f3530ff03abbd979b072536e72290"><div class="ttname"><a href="ff_8h.html#a1f4f3530ff03abbd979b072536e72290">FA_READ</a></div><div class="ttdeci">#define FA_READ</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00330">ff.h:330</a></div></div>
<div class="ttc" id="posix_8c_html_a732642e09075838bbbca28b3529f13db"><div class="ttname"><a href="posix_8c.html#a732642e09075838bbbca28b3529f13db">utime</a></div><div class="ttdeci">MEMSPACE int utime(const char *filename, const struct utimbuf *times)</div><div class="ttdoc">Set Modification and Access time of a file. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01407">posix.c:1407</a></div></div>
<div class="ttc" id="posix_8c_html_a01233ac8fd574e20b0b38472adbee551"><div class="ttname"><a href="posix_8c.html#a01233ac8fd574e20b0b38472adbee551">fread</a></div><div class="ttdeci">MEMSPACE size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)</div><div class="ttdoc">POSIX read nmemb elements from buf, size bytes each, to the stream fd. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00803">posix.c:803</a></div></div>
<div class="ttc" id="posix_8h_html_a7934343459dfe68ced51599a7b9a316f"><div class="ttname"><a href="posix_8h.html#a7934343459dfe68ced51599a7b9a316f">__SSTR</a></div><div class="ttdeci">#define __SSTR</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00162">posix.h:162</a></div></div>
<div class="ttc" id="struct____file_html_a3e5a85ae919a90efbb7cb44ccb54fe46"><div class="ttname"><a href="struct____file.html#a3e5a85ae919a90efbb7cb44ccb54fe46">__file::buf</a></div><div class="ttdeci">char * buf</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00157">posix.h:157</a></div></div>
<div class="ttc" id="posix_8c_html_af98213e7457dbe734d81d34758d2b505"><div class="ttname"><a href="posix_8c.html#af98213e7457dbe734d81d34758d2b505">feof</a></div><div class="ttdeci">MEMSPACE int feof(FILE *stream)</div><div class="ttdoc">feof reports if the stream is at EOF </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00505">posix.c:505</a></div></div>
<div class="ttc" id="time_8c_html_a32b1cbd925752f0cd61d202bbe204a69"><div class="ttname"><a href="time_8c.html#a32b1cbd925752f0cd61d202bbe204a69">time</a></div><div class="ttdeci">MEMSPACE time_t time(time_t *t)</div><div class="ttdoc">Return second from epoch - POSIX function. </div><div class="ttdef"><b>Definition:</b> <a href="time_8c_source.html#l00843">time.c:843</a></div></div>
<div class="ttc" id="structutimbuf_html"><div class="ttname"><a href="structutimbuf.html">utimbuf</a></div><div class="ttdoc">POSIX utimbuf structure. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00124">posix.h:124</a></div></div>
<div class="ttc" id="ff_8h_html_afba4546b131dea4b24727fa20a80e29f"><div class="ttname"><a href="ff_8h.html#afba4546b131dea4b24727fa20a80e29f">FA_CREATE_ALWAYS</a></div><div class="ttdeci">#define FA_CREATE_ALWAYS</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00334">ff.h:334</a></div></div>
<div class="ttc" id="ff_8c_html_aeb607fa4b05d127d971ff40f143bac66"><div class="ttname"><a href="ff_8c.html#aeb607fa4b05d127d971ff40f143bac66">f_opendir</a></div><div class="ttdeci">MEMSPACE FRESULT f_opendir(DIR *dp, const TCHAR *path)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04155">ff.c:4155</a></div></div>
<div class="ttc" id="ff_8c_html_a3d18a7f44fbdca3752f437264055c1ba"><div class="ttname"><a href="ff_8c.html#a3d18a7f44fbdca3752f437264055c1ba">f_mkdir</a></div><div class="ttdeci">MEMSPACE FRESULT f_mkdir(const TCHAR *path)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04622">ff.c:4622</a></div></div>
<div class="ttc" id="user__task_8c_html_a863d8bc03e69f2efee6042bcec7b456b"><div class="ttname"><a href="user__task_8c.html#a863d8bc03e69f2efee6042bcec7b456b">optimistic_yield</a></div><div class="ttdeci">void optimistic_yield(uint32_t interval_us)</div><div class="ttdef"><b>Definition:</b> <a href="user__task_8c_source.html#l00102">user_task.c:102</a></div></div>
<div class="ttc" id="posix_8c_html_a178d5d21b21c0f60d6ff8dfbbc0d86f5"><div class="ttname"><a href="posix_8c.html#a178d5d21b21c0f60d6ff8dfbbc0d86f5">fat_time_to_unix</a></div><div class="ttdeci">MEMSPACE time_t fat_time_to_unix(uint16_t date, uint16_t time)</div><div class="ttdoc">Convert FatFs file date and time to POSIX epoch seconds. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02227">posix.c:2227</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44cab6c9903af6e9bffbb7a288705f4a6a76"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cab6c9903af6e9bffbb7a288705f4a6a76">FR_INT_ERR</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00223">ff.h:223</a></div></div>
<div class="ttc" id="structDIR_html"><div class="ttname"><a href="structDIR.html">DIR</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00184">ff.h:184</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca97dee4a6b485dc8f91f37486092dfe34"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca97dee4a6b485dc8f91f37486092dfe34">FR_DISK_ERR</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00222">ff.h:222</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa87d4476eed38f45439e257081c9de369">EBADF</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00072">posix.h:72</a></div></div>
<div class="ttc" id="posix_8h_html_a59adc4c82490d23754cd39c2fb99b0da"><div class="ttname"><a href="posix_8h.html#a59adc4c82490d23754cd39c2fb99b0da">EOF</a></div><div class="ttdeci">#define EOF</div><div class="ttdoc">End of file or device read. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00248">posix.h:248</a></div></div>
<div class="ttc" id="ff_8c_html_a1ade4a85f88359e47c474a5436cc20fa"><div class="ttname"><a href="ff_8c.html#a1ade4a85f88359e47c474a5436cc20fa">f_lseek</a></div><div class="ttdeci">MEMSPACE FRESULT f_lseek(FIL *fp, FSIZE_t ofs)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04000">ff.c:4000</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca0d8f024d256df76e84782b95018a2450"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca0d8f024d256df76e84782b95018a2450">FR_EXIST</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00229">ff.h:229</a></div></div>
<div class="ttc" id="posix_8h_html_af08f227b04a8833c49ce8b798ca7f403"><div class="ttname"><a href="posix_8h.html#af08f227b04a8833c49ce8b798ca7f403">__SWR</a></div><div class="ttdeci">#define __SWR</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00161">posix.h:161</a></div></div>
<div class="ttc" id="posix_8c_html_a81f14429660ca6a685676d6ceaf5350c"><div class="ttname"><a href="posix_8c.html#a81f14429660ca6a685676d6ceaf5350c">fatfs_to_fileno</a></div><div class="ttdeci">MEMSPACE int fatfs_to_fileno(FIL *fh)</div><div class="ttdoc">Convert FatFS file handle to POSIX fileno. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02190">posix.c:2190</a></div></div>
<div class="ttc" id="time_8h_html_a3346b04b0420b32ccf6b706551b70762"><div class="ttname"><a href="time_8h.html#a3346b04b0420b32ccf6b706551b70762">time_t</a></div><div class="ttdeci">uint32_t time_t</div><div class="ttdoc">type of EPOCH result. </div><div class="ttdef"><b>Definition:</b> <a href="time_8h_source.html#l00035">time.h:35</a></div></div>
<div class="ttc" id="posix_8c_html_a26a07a3db060ffc5659fe03495a29a1c"><div class="ttname"><a href="posix_8c.html#a26a07a3db060ffc5659fe03495a29a1c">dirname</a></div><div class="ttdeci">MEMSPACE int dirname(char *str)</div><div class="ttdoc">POSIX directory name of a filename. Return the index of the last &amp;#39;/&amp;#39; character. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01551">posix.c:1551</a></div></div>
<div class="ttc" id="structtm_html_a112ac36fa2f593777138a417cf031e17"><div class="ttname"><a href="structtm.html#a112ac36fa2f593777138a417cf031e17">tm::tm_mon</a></div><div class="ttdeci">int tm_mon</div><div class="ttdef"><b>Definition:</b> <a href="time_8h_source.html#l00047">time.h:47</a></div></div>
<div class="ttc" id="fatfs__sup_8c_html_ab3509aecf1844c84f1797e5b567d531c"><div class="ttname"><a href="fatfs__sup_8c.html#ab3509aecf1844c84f1797e5b567d531c">put_rc</a></div><div class="ttdeci">MEMSPACE void put_rc(int rc)</div><div class="ttdoc">display FatFs return code as ascii string </div><div class="ttdef"><b>Definition:</b> <a href="fatfs__sup_8c_source.html#l00145">fatfs_sup.c:145</a></div></div>
<div class="ttc" id="ff_8h_html_a1f25d5c17b5a3a6397b3398add8cdc15"><div class="ttname"><a href="ff_8h.html#a1f25d5c17b5a3a6397b3398add8cdc15">AM_SYS</a></div><div class="ttdeci">#define AM_SYS</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00357">ff.h:357</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca97da8f98fc2e66d8fa7847f9ebb19b8c"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca97da8f98fc2e66d8fa7847f9ebb19b8c">FR_NO_FILE</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00225">ff.h:225</a></div></div>
<div class="ttc" id="integer_8h_html_a4ae1dab0fb4b072a66584546209e7d58"><div class="ttname"><a href="integer_8h.html#a4ae1dab0fb4b072a66584546209e7d58">BYTE</a></div><div class="ttdeci">unsigned char BYTE</div><div class="ttdef"><b>Definition:</b> <a href="integer_8h_source.html#l00022">integer.h:22</a></div></div>
<div class="ttc" id="cpu_8h_html_a070d2ce7b6bb7e5c05602aa8c308d0c4"><div class="ttname"><a href="cpu_8h.html#a070d2ce7b6bb7e5c05602aa8c308d0c4">NULL</a></div><div class="ttdeci">#define NULL</div><div class="ttdef"><b>Definition:</b> <a href="cpu_8h_source.html#l00055">cpu.h:55</a></div></div>
<div class="ttc" id="struct____file_html_a30309efd13a75ed510bb2370debafaf8"><div class="ttname"><a href="struct____file.html#a30309efd13a75ed510bb2370debafaf8">__file::len</a></div><div class="ttdeci">int len</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00176">posix.h:176</a></div></div>
<div class="ttc" id="time_8c_html_acf34275ac6fb2f724205873402dc9f70"><div class="ttname"><a href="time_8c.html#acf34275ac6fb2f724205873402dc9f70">ctime_gm</a></div><div class="ttdeci">MEMSPACE char * ctime_gm(time_t *tp)</div><div class="ttdoc">GMT version of POSIX ctime(). </div><div class="ttdef"><b>Definition:</b> <a href="time_8c_source.html#l00441">time.c:441</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa1c0d17ac093eff038b479dba021361bb"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa1c0d17ac093eff038b479dba021361bb">ENXIO</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00069">posix.h:69</a></div></div>
<div class="ttc" id="struct____file_html_a1d139ae3cb11a1fada469a49f7d3d3b6"><div class="ttname"><a href="struct____file.html#a1d139ae3cb11a1fada469a49f7d3d3b6">__file::unget</a></div><div class="ttdeci">unsigned char unget</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00158">posix.h:158</a></div></div>
<div class="ttc" id="posix_8h_html_ad2a2e6c114780c3071efd24f16c7f7d8"><div class="ttname"><a href="posix_8h.html#ad2a2e6c114780c3071efd24f16c7f7d8">SEEK_END</a></div><div class="ttdeci">#define SEEK_END</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00253">posix.h:253</a></div></div>
<div class="ttc" id="posix_8c_html_aa5666c514336f78c6d1ab6bc35c74ae0"><div class="ttname"><a href="posix_8c.html#aa5666c514336f78c6d1ab6bc35c74ae0">unix_time_to_fat</a></div><div class="ttdeci">MEMSPACE void unix_time_to_fat(time_t epoch, uint16_t *date, uint16_t *time)</div><div class="ttdoc">Convert Linux POSIX time_t to FAT32 date and time. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02252">posix.c:2252</a></div></div>
<div class="ttc" id="posix_8c_html_a30a4070a8b1719d53cb01dd4b2a65069"><div class="ttname"><a href="posix_8c.html#a30a4070a8b1719d53cb01dd4b2a65069">fputs</a></div><div class="ttdeci">MEMSPACE int fputs(const char *str, FILE *stream)</div><div class="ttdoc">put a string to stdout See fdevopen() sets stream-&gt;put get for TTY devices </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00457">posix.c:457</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44cae4529c8cc8b59783d6efc9ba4f574532"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cae4529c8cc8b59783d6efc9ba4f574532">FR_NO_PATH</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00226">ff.h:226</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aaec0aa1bb79e2e55ed6d8c165e0611eca"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aaec0aa1bb79e2e55ed6d8c165e0611eca">ENOMEM</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00075">posix.h:75</a></div></div>
<div class="ttc" id="posix_8c_html_a521c33bdb3606c9f3546b9cbcd37b9ac"><div class="ttname"><a href="posix_8c.html#a521c33bdb3606c9f3546b9cbcd37b9ac">syncfs</a></div><div class="ttdeci">MEMSPACE int syncfs(int fd)</div><div class="ttdoc">POSIX Sync pending file changes and metadata for specified fileno. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01096">posix.c:1096</a></div></div>
<div class="ttc" id="ff_8h_html_a0c5dd686b10f84c2a2b3954957a5979a"><div class="ttname"><a href="ff_8h.html#a0c5dd686b10f84c2a2b3954957a5979a">FA_OPEN_EXISTING</a></div><div class="ttdeci">#define FA_OPEN_EXISTING</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00332">ff.h:332</a></div></div>
<div class="ttc" id="posix_8c_html_a73a95c4a93875be906e573c00b30c5ea"><div class="ttname"><a href="posix_8c.html#a73a95c4a93875be906e573c00b30c5ea">truncate</a></div><div class="ttdeci">MEMSPACE int truncate(const char *path, off_t length)</div><div class="ttdoc">POSIX truncate named file to length. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01142">posix.c:1142</a></div></div>
<div class="ttc" id="posix_8c_html_af104a2c05bef787e54c6925616e867df"><div class="ttname"><a href="posix_8c.html#af104a2c05bef787e54c6925616e867df">read</a></div><div class="ttdeci">MEMSPACE ssize_t read(int fd, const void *buf, size_t count)</div><div class="ttdoc">POSIX read count bytes from *buf to fileno fd. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01006">posix.c:1006</a></div></div>
<div class="ttc" id="diskio_8h_html_aacdfef1dad6565f65c26d12fe0ea4b2ba2ea4b6ef3fffc17dd1d38ab5c2837737"><div class="ttname"><a href="diskio_8h.html#aacdfef1dad6565f65c26d12fe0ea4b2ba2ea4b6ef3fffc17dd1d38ab5c2837737">RES_OK</a></div><div class="ttdef"><b>Definition:</b> <a href="diskio_8h_source.html#l00024">diskio.h:24</a></div></div>
<div class="ttc" id="stringsup_8c_html_a1825e0085bbbce998b39f9ff2682173c"><div class="ttname"><a href="stringsup_8c.html#a1825e0085bbbce998b39f9ff2682173c">tolower</a></div><div class="ttdeci">MEMSPACE int WEAK_ATR tolower(int c)</div><div class="ttdoc">Convert character to lower case, only if it is upper case. </div><div class="ttdef"><b>Definition:</b> <a href="stringsup_8c_source.html#l00096">stringsup.c:96</a></div></div>
<div class="ttc" id="system_8c_html_aca19f0f1e5d805c1e5f61101fa4690f1"><div class="ttname"><a href="system_8c.html#aca19f0f1e5d805c1e5f61101fa4690f1">safemalloc</a></div><div class="ttdeci">MEMSPACE void * safemalloc(size_t size)</div><div class="ttdoc">Safe Malloc - Display Error message if Malloc fails. </div><div class="ttdef"><b>Definition:</b> <a href="system_8c_source.html#l00146">system.c:146</a></div></div>
<div class="ttc" id="posix_8c_html_a148630cbecc0822d9395f002691ffe75"><div class="ttname"><a href="posix_8c.html#a148630cbecc0822d9395f002691ffe75">fwrite</a></div><div class="ttdeci">MEMSPACE size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)</div><div class="ttdoc">POSIX write nmemb elements from buf, size bytes each, to the stream fd. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00868">posix.c:868</a></div></div>
<div class="ttc" id="posix_8c_html_a474e4e6cac62ef12c66b8a597c14e5f6"><div class="ttname"><a href="posix_8c.html#a474e4e6cac62ef12c66b8a597c14e5f6">ftruncate</a></div><div class="ttdeci">MEMSPACE int ftruncate(int fd, off_t length)</div><div class="ttdoc">POSIX truncate open file to length. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00827">posix.c:827</a></div></div>
<div class="ttc" id="posix_8c_html_aa964d662c19b2021d9cfd0c71bc686bd"><div class="ttname"><a href="posix_8c.html#aa964d662c19b2021d9cfd0c71bc686bd">unlink</a></div><div class="ttdeci">MEMSPACE int unlink(const char *pathname)</div><div class="ttdoc">POSIX delete a file. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01693">posix.c:1693</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44c"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44c">FRESULT</a></div><div class="ttdeci">FRESULT</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00220">ff.h:220</a></div></div>
<div class="ttc" id="posix_8h_html_ad1d67e453fb3031f40f8cd3403773813"><div class="ttname"><a href="posix_8h.html#ad1d67e453fb3031f40f8cd3403773813">O_TRUNC</a></div><div class="ttdeci">#define O_TRUNC</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00194">posix.h:194</a></div></div>
<div class="ttc" id="structstat_html_a5cbdd829011af82ba61e83773bbcbc7d"><div class="ttname"><a href="structstat.html#a5cbdd829011af82ba61e83773bbcbc7d">stat::st_mode</a></div><div class="ttdeci">mode_t st_mode</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00109">posix.h:109</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa2b5265f4c8556b15ec913f61caade1eb"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa2b5265f4c8556b15ec913f61caade1eb">ENOSPC</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00091">posix.h:91</a></div></div>
<div class="ttc" id="posix_8h_html_a9a9bfdbe4548d021af62fb947d2b6b82"><div class="ttname"><a href="posix_8h.html#a9a9bfdbe4548d021af62fb947d2b6b82">__SRD</a></div><div class="ttdeci">#define __SRD</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00160">posix.h:160</a></div></div>
<div class="ttc" id="posix_8c_html_a607feb06d296e0ff60d5a19538bd17fc"><div class="ttname"><a href="posix_8c.html#a607feb06d296e0ff60d5a19538bd17fc">posix_fopen_modes_to_open</a></div><div class="ttdeci">MEMSPACE int posix_fopen_modes_to_open(const char *mode)</div><div class="ttdoc">Convert POSIX fopen mode to POSIX open mode flags. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02418">posix.c:2418</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44cafc56605c68aaffab4a428339a8bd600d"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cafc56605c68aaffab4a428339a8bd600d">FR_NOT_ENABLED</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00233">ff.h:233</a></div></div>
<div class="ttc" id="posix_8h_html_a93db55caeeaf13488a635f8896a6bdf3"><div class="ttname"><a href="posix_8h.html#a93db55caeeaf13488a635f8896a6bdf3">_FDEV_SETUP_RW</a></div><div class="ttdeci">#define _FDEV_SETUP_RW</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00300">posix.h:300</a></div></div>
<div class="ttc" id="mmc__hal_8c_html_ad417477e66c88b40dcce683fd6a5c47a"><div class="ttname"><a href="mmc__hal_8c.html#ad417477e66c88b40dcce683fd6a5c47a">mmc_init</a></div><div class="ttdeci">MEMSPACE int mmc_init(int verbose)</div><div class="ttdoc">Initialize MMC and FatFs interface, display diagnostics. </div><div class="ttdef"><b>Definition:</b> <a href="mmc__hal_8c_source.html#l00208">mmc_hal.c:208</a></div></div>
<div class="ttc" id="posix_8h_html_a822a791a1c06a12b95c14ace75b48ad2"><div class="ttname"><a href="posix_8h.html#a822a791a1c06a12b95c14ace75b48ad2">_FDEV_SETUP_WRITE</a></div><div class="ttdeci">#define _FDEV_SETUP_WRITE</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00299">posix.h:299</a></div></div>
<div class="ttc" id="structFILINFO_html_a9e5b78ed7190f73de3ebcbdfbd6d1844"><div class="ttname"><a href="structFILINFO.html#a9e5b78ed7190f73de3ebcbdfbd6d1844">FILINFO::fsize</a></div><div class="ttdeci">FSIZE_t fsize</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00204">ff.h:204</a></div></div>
<div class="ttc" id="ili9341_8c_html_a4b00721003b8d35559a55c9098ff36c5"><div class="ttname"><a href="ili9341_8c.html#a4b00721003b8d35559a55c9098ff36c5">ind</a></div><div class="ttdeci">int ind</div><div class="ttdef"><b>Definition:</b> <a href="ili9341_8c_source.html#l00373">ili9341.c:373</a></div></div>
<div class="ttc" id="posix_8c_html_ad6fd240fec1d65213f34b6e6465a8033"><div class="ttname"><a href="posix_8c.html#ad6fd240fec1d65213f34b6e6465a8033">fclose</a></div><div class="ttdeci">MEMSPACE int fclose(FILE *stream)</div><div class="ttdoc">POSIX close a file stream. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01239">posix.c:1239</a></div></div>
<div class="ttc" id="time_8c_html_a10fe08d03c4c3da23d1e1c059f4cf3a5"><div class="ttname"><a href="time_8c.html#a10fe08d03c4c3da23d1e1c059f4cf3a5">gmtime</a></div><div class="ttdeci">MEMSPACE tm_t * gmtime(time_t *tp)</div><div class="ttdoc">Convert epoch GMT time_t *tp into POSIX static tm_t *t. </div><div class="ttdef"><b>Definition:</b> <a href="time_8c_source.html#l00471">time.c:471</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa156dcc38d9ba0765c6150544963ed267"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa156dcc38d9ba0765c6150544963ed267">EPERM</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00064">posix.h:64</a></div></div>
<div class="ttc" id="struct__printf__t_html_ad35884151d0be6667caafad8caacc76f"><div class="ttname"><a href="struct__printf__t.html#ad35884151d0be6667caafad8caacc76f">_printf_t::buffer</a></div><div class="ttdeci">void * buffer</div><div class="ttdef"><b>Definition:</b> <a href="mathio_8h_source.html#l00084">mathio.h:84</a></div></div>
<div class="ttc" id="posix_8h_html_a63f42c2888ed9bd0f00ee25002ee3b02"><div class="ttname"><a href="posix_8h.html#a63f42c2888ed9bd0f00ee25002ee3b02">__SEOF</a></div><div class="ttdeci">#define __SEOF</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00165">posix.h:165</a></div></div>
<div class="ttc" id="posix_8h_html_aaca70138f0cb63ddb026921afc635179"><div class="ttname"><a href="posix_8h.html#aaca70138f0cb63ddb026921afc635179">stdin</a></div><div class="ttdeci">#define stdin</div><div class="ttdoc">define stdin, stdout and stderr </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00269">posix.h:269</a></div></div>
<div class="ttc" id="posix_8h_html_a28002092a0615e21c9943a426e81015f"><div class="ttname"><a href="posix_8h.html#a28002092a0615e21c9943a426e81015f">modecmp</a></div><div class="ttdeci">#define modecmp(str, pat)</div><div class="ttdoc">used in posix.c to compare to ascii file modes </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00238">posix.h:238</a></div></div>
<div class="ttc" id="structFILINFO_html_a7c3ce2dd03dc9a9726967fc43116079f"><div class="ttname"><a href="structFILINFO.html#a7c3ce2dd03dc9a9726967fc43116079f">FILINFO::fname</a></div><div class="ttdeci">TCHAR fname[_MAX_LFN+1]</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00210">ff.h:210</a></div></div>
<div class="ttc" id="stringsup_8h_html"><div class="ttname"><a href="stringsup_8h.html">stringsup.h</a></div><div class="ttdoc">Various string and character functions. </div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca3f8ca7e51af8b129d14328de7243c5d4"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca3f8ca7e51af8b129d14328de7243c5d4">FR_TIMEOUT</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00236">ff.h:236</a></div></div>
<div class="ttc" id="struct____file_html_a01c8b217e42cc11b6a7f8429114e9d46"><div class="ttname"><a href="struct____file.html#a01c8b217e42cc11b6a7f8429114e9d46">__file::put</a></div><div class="ttdeci">int(* put)(char, struct __file *)</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00177">posix.h:177</a></div></div>
<div class="ttc" id="posix_8h_html_ad541703cea6b378290dcf2ea448d2879"><div class="ttname"><a href="posix_8h.html#ad541703cea6b378290dcf2ea448d2879">__SUNGET</a></div><div class="ttdeci">#define __SUNGET</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00166">posix.h:166</a></div></div>
<div class="ttc" id="structstat_html"><div class="ttname"><a href="structstat.html">stat</a></div><div class="ttdoc">POSIX stat structure. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00105">posix.h:105</a></div></div>
<div class="ttc" id="posix_8c_html_aceb657a1b3c10d576aed287714bfd5d1"><div class="ttname"><a href="posix_8c.html#aceb657a1b3c10d576aed287714bfd5d1">fileno</a></div><div class="ttdeci">MEMSPACE int fileno(FILE *stream)</div><div class="ttdoc">Convert POSIX stream pointer to POSIX fileno (index of __iob[]) </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00724">posix.c:724</a></div></div>
<div class="ttc" id="structutimbuf_html_a7588ffe699a9eda52e94aa593bf7d6d8"><div class="ttname"><a href="structutimbuf.html#a7588ffe699a9eda52e94aa593bf7d6d8">utimbuf::modtime</a></div><div class="ttdeci">time_t modtime</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00127">posix.h:127</a></div></div>
<div class="ttc" id="ff_8c_html_ac4f434f28feb4769fc4453f0cefe84f8"><div class="ttname"><a href="ff_8c.html#ac4f434f28feb4769fc4453f0cefe84f8">f_unlink</a></div><div class="ttdeci">MEMSPACE FRESULT f_unlink(const TCHAR *path)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04526">ff.c:4526</a></div></div>
<div class="ttc" id="posix_8h_html_a0d112bae8fd35be772185b6ec6bcbe64"><div class="ttname"><a href="posix_8h.html#a0d112bae8fd35be772185b6ec6bcbe64">SEEK_SET</a></div><div class="ttdeci">#define SEEK_SET</div><div class="ttdoc">Seek offset macros. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00251">posix.h:251</a></div></div>
<div class="ttc" id="structtm_html"><div class="ttname"><a href="structtm.html">tm</a></div><div class="ttdoc">POSIX struct tm. </div><div class="ttdef"><b>Definition:</b> <a href="time_8h_source.html#l00041">time.h:41</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca50dd3c3c274ccebb2cfbddde9d065bb9"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca50dd3c3c274ccebb2cfbddde9d065bb9">FR_TOO_MANY_OPEN_FILES</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00239">ff.h:239</a></div></div>
<div class="ttc" id="posix_8h_html_a0c0ef221f95f64e8632451312fd18cc8"><div class="ttname"><a href="posix_8h.html#a0c0ef221f95f64e8632451312fd18cc8">stdout</a></div><div class="ttdeci">#define stdout</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00270">posix.h:270</a></div></div>
<div class="ttc" id="posix_8c_html_a42837e7607f8e3b8ae74286253989724"><div class="ttname"><a href="posix_8c.html#a42837e7607f8e3b8ae74286253989724">_de</a></div><div class="ttdeci">static dirent_t _de</div><div class="ttdoc">POSIX opendir. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01754">posix.c:1754</a></div></div>
<div class="ttc" id="posix_8c_html_a1d2fa24415329171e6765ed5309b6edd"><div class="ttname"><a href="posix_8c.html#a1d2fa24415329171e6765ed5309b6edd">fgetc</a></div><div class="ttdeci">MEMSPACE int fgetc(FILE *stream)</div><div class="ttdoc">Get byte from a TTY device or FatFs file stream open() or fopen() sets stream-&gt;get = fatfs_getc() for...</div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00216">posix.c:216</a></div></div>
<div class="ttc" id="posix_8h_html_a11fb0652b963a735f3377eb1c9239f2d"><div class="ttname"><a href="posix_8h.html#a11fb0652b963a735f3377eb1c9239f2d">S_IFDIR</a></div><div class="ttdeci">#define S_IFDIR</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00202">posix.h:202</a></div></div>
<div class="ttc" id="posix_8c_html_aa360dd5203b246757abc21253ed8eb2e"><div class="ttname"><a href="posix_8c.html#aa360dd5203b246757abc21253ed8eb2e">puts</a></div><div class="ttdeci">MEMSPACE int puts(const char *str)</div><div class="ttdoc">put a string to stdout See fdevopen() sets stream-&gt;put get for TTY devices </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00480">posix.c:480</a></div></div>
<div class="ttc" id="structFIL_html_a088b03ab2e02f82e10e17bdd938190a6"><div class="ttname"><a href="structFIL.html#a088b03ab2e02f82e10e17bdd938190a6">FIL::fptr</a></div><div class="ttdeci">FSIZE_t fptr</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00165">ff.h:165</a></div></div>
<div class="ttc" id="structFILINFO_html_a838d542585831b085537b363f18205c0"><div class="ttname"><a href="structFILINFO.html#a838d542585831b085537b363f18205c0">FILINFO::fattrib</a></div><div class="ttdeci">BYTE fattrib</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00207">ff.h:207</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca4b02760f758f5b1a89f445244fe9fbca"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca4b02760f758f5b1a89f445244fe9fbca">FR_MKFS_ABORTED</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00235">ff.h:235</a></div></div>
<div class="ttc" id="cpu_8h_html_ad0fe97585b8891f5e4f2b9a6426330a4"><div class="ttname"><a href="cpu_8h.html#ad0fe97585b8891f5e4f2b9a6426330a4">MEMSPACE</a></div><div class="ttdeci">#define MEMSPACE</div><div class="ttdef"><b>Definition:</b> <a href="cpu_8h_source.html#l00025">cpu.h:25</a></div></div>
<div class="ttc" id="integer_8h_html_a36cb3b01d81ffd844bbbfb54003e06ec"><div class="ttname"><a href="integer_8h.html#a36cb3b01d81ffd844bbbfb54003e06ec">UINT</a></div><div class="ttdeci">unsigned int UINT</div><div class="ttdef"><b>Definition:</b> <a href="integer_8h_source.html#l00019">integer.h:19</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aaf8ee28f2eeab568a1b641f6ffc1f90a8"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aaf8ee28f2eeab568a1b641f6ffc1f90a8">ENFILE</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00086">posix.h:86</a></div></div>
<div class="ttc" id="ff_8h_html_aff61d3ed8f8c6ea5c25c3cb366320e08"><div class="ttname"><a href="ff_8h.html#aff61d3ed8f8c6ea5c25c3cb366320e08">FM_FAT32</a></div><div class="ttdeci">#define FM_FAT32</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00343">ff.h:343</a></div></div>
<div class="ttc" id="system_8c_html_a9b9f170e9a01e51b57656fcda1f183df"><div class="ttname"><a href="system_8c.html#a9b9f170e9a01e51b57656fcda1f183df">wdt_reset</a></div><div class="ttdeci">MEMSPACE void wdt_reset(void)</div><div class="ttdoc">reset watchdog </div><div class="ttdef"><b>Definition:</b> <a href="system_8c_source.html#l00190">system.c:190</a></div></div>
<div class="ttc" id="posix_8h_html_a58a8434d968e434626088e2dc6ae6124"><div class="ttname"><a href="posix_8h.html#a58a8434d968e434626088e2dc6ae6124">FATFS_W</a></div><div class="ttdeci">#define FATFS_W</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00243">posix.h:243</a></div></div>
<div class="ttc" id="posix_8c_html_a5811041feb43c22c6e609a8875475abc"><div class="ttname"><a href="posix_8c.html#a5811041feb43c22c6e609a8875475abc">fatfs_getc</a></div><div class="ttdeci">MEMSPACE int fatfs_getc(FILE *stream)</div><div class="ttdoc">Private FatFs function called by fgetc() to get a byte from file stream FIXME buffer this function ca...</div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01984">posix.c:1984</a></div></div>
<div class="ttc" id="posix_8c_html_a8b57a7ee1ba139c636477cf2998e8b1e"><div class="ttname"><a href="posix_8c.html#a8b57a7ee1ba139c636477cf2998e8b1e">mkdir</a></div><div class="ttdeci">MEMSPACE int mkdir(const char *pathname, mode_t mode)</div><div class="ttdoc">POSIX make a directory. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01619">posix.c:1619</a></div></div>
<div class="ttc" id="posix_8c_html_af979e8f6598be71d68be7cc49a41626b"><div class="ttname"><a href="posix_8c.html#af979e8f6598be71d68be7cc49a41626b">ungetc</a></div><div class="ttdeci">MEMSPACE int ungetc(int c, FILE *stream)</div><div class="ttdoc">Un-Get byte from a TTY device or FatFs file stream. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00368">posix.c:368</a></div></div>
<div class="ttc" id="posix_8c_html_a6311c6b29216455ec9b716b9eb31c799"><div class="ttname"><a href="posix_8c.html#a6311c6b29216455ec9b716b9eb31c799">strerror_r</a></div><div class="ttdeci">MEMSPACE char * strerror_r(int errnum, char *buf, size_t buflen)</div><div class="ttdoc">POSIX strerror_r() - convert POSIX errno to text with user message. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01857">posix.c:1857</a></div></div>
<div class="ttc" id="ff_8h_html_add6d85d1e7a02b4f6188783ef91a5f1e"><div class="ttname"><a href="ff_8h.html#add6d85d1e7a02b4f6188783ef91a5f1e">AM_RDO</a></div><div class="ttdeci">#define AM_RDO</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00355">ff.h:355</a></div></div>
<div class="ttc" id="ff_8h_html_a26f33722c5bf1aa3cd6f0290a83eb2bc"><div class="ttname"><a href="ff_8h.html#a26f33722c5bf1aa3cd6f0290a83eb2bc">f_size</a></div><div class="ttdeci">#define f_size(fp)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00285">ff.h:285</a></div></div>
<div class="ttc" id="posix_8c_html_aaeac2b41e8c2c3a5f91c9bd511a8c0a6"><div class="ttname"><a href="posix_8c.html#aaeac2b41e8c2c3a5f91c9bd511a8c0a6">closedir</a></div><div class="ttdeci">int closedir(DIR *dirp)</div><div class="ttdoc">POSIX closedir. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01717">posix.c:1717</a></div></div>
<div class="ttc" id="posix_8c_html_a43b14410cd7b1b67c7834ad2d6a193ce"><div class="ttname"><a href="posix_8c.html#a43b14410cd7b1b67c7834ad2d6a193ce">chmod</a></div><div class="ttdeci">MEMSPACE int chmod(const char *pathname, mode_t mode)</div><div class="ttdoc">POSIX chmod function - change file access permission Unfortunately file f_open modes and f_chmod mode...</div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01513">posix.c:1513</a></div></div>
<div class="ttc" id="mathio_8h_html_ad6078f8da2d30ecaef99e0c2d250c0c8"><div class="ttname"><a href="mathio_8h.html#ad6078f8da2d30ecaef99e0c2d250c0c8">printf</a></div><div class="ttdeci">MEMSPACE int printf(const char *format,...)</div></div>
<div class="ttc" id="stringsup_8h_html_a399da2caab82ec1bb3d5a8fbc5306768"><div class="ttname"><a href="stringsup_8h.html#a399da2caab82ec1bb3d5a8fbc5306768">WEAK_ATR</a></div><div class="ttdeci">#define WEAK_ATR</div><div class="ttdef"><b>Definition:</b> <a href="stringsup_8h_source.html#l00033">stringsup.h:33</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca7db5afaaa2af591bd4a208b2967075d7"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca7db5afaaa2af591bd4a208b2967075d7">FR_LOCKED</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00237">ff.h:237</a></div></div>
<div class="ttc" id="posix_8c_html_af53dca187c78408fe2f1958c4eb88603"><div class="ttname"><a href="posix_8c.html#af53dca187c78408fe2f1958c4eb88603">ftell</a></div><div class="ttdeci">MEMSPACE long ftell(FILE *stream)</div><div class="ttdoc">POSIX file position of open stream. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00585">posix.c:585</a></div></div>
<div class="ttc" id="posix_8h_html_ad70001754261c15a1bdc8e876c6d09d7"><div class="ttname"><a href="posix_8h.html#ad70001754261c15a1bdc8e876c6d09d7">S_IWUSR</a></div><div class="ttdeci">#define S_IWUSR</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00222">posix.h:222</a></div></div>
<div class="ttc" id="structstat_html_ab74d1e7e345e88b9d0fb2688a97cba64"><div class="ttname"><a href="structstat.html#ab74d1e7e345e88b9d0fb2688a97cba64">stat::st_atime</a></div><div class="ttdeci">time_t st_atime</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00117">posix.h:117</a></div></div>
<div class="ttc" id="posix_8h_html_a132917c782a0ba854c3ae9abe57c3b12"><div class="ttname"><a href="posix_8h.html#a132917c782a0ba854c3ae9abe57c3b12">_FDEV_ERR</a></div><div class="ttdeci">#define _FDEV_ERR</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00296">posix.h:296</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa56198247acea7520ae5c6005fbe76a31"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa56198247acea7520ae5c6005fbe76a31">EROFS</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00093">posix.h:93</a></div></div>
<div class="ttc" id="ff_8c_html_a84b14214901bda30fdfe7f45f1aeb634"><div class="ttname"><a href="ff_8c.html#a84b14214901bda30fdfe7f45f1aeb634">f_stat</a></div><div class="ttdeci">MEMSPACE FRESULT f_stat(const TCHAR *path, FILINFO *fno)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04351">ff.c:4351</a></div></div>
<div class="ttc" id="posix_8c_html_a9c74403d1a11692bcab2c9ab7de4b0d3"><div class="ttname"><a href="posix_8c.html#a9c74403d1a11692bcab2c9ab7de4b0d3">chdir</a></div><div class="ttdeci">MEMSPACE int chdir(const char *pathname)</div><div class="ttdoc">POSIX change directory. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01488">posix.c:1488</a></div></div>
<div class="ttc" id="posix_8h_html_a5ce35bd5ba5021fd3b2e951e8f497656"><div class="ttname"><a href="posix_8h.html#a5ce35bd5ba5021fd3b2e951e8f497656">stderr</a></div><div class="ttdeci">#define stderr</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00271">posix.h:271</a></div></div>
<div class="ttc" id="structFIL_html"><div class="ttname"><a href="structFIL.html">FIL</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00161">ff.h:161</a></div></div>
<div class="ttc" id="posix_8c_html_a4d3dfaf2f5a63e2e4eaa128477a9b5e7"><div class="ttname"><a href="posix_8c.html#a4d3dfaf2f5a63e2e4eaa128477a9b5e7">basename</a></div><div class="ttdeci">MEMSPACE char * basename(char *str)</div><div class="ttdoc">POSIX Basename of filename. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01446">posix.c:1446</a></div></div>
<div class="ttc" id="posix_8c_html_ad65a8842cc674e3ddf69355898c0ecbf"><div class="ttname"><a href="posix_8c.html#ad65a8842cc674e3ddf69355898c0ecbf">errno</a></div><div class="ttdeci">int errno</div><div class="ttdoc">Note: fdevopen assigns stdin,stdout,stderr. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00129">posix.c:129</a></div></div>
<div class="ttc" id="ff_8c_html_a7da7c8d04f20b7f630073721eff53572"><div class="ttname"><a href="ff_8c.html#a7da7c8d04f20b7f630073721eff53572">f_getcwd</a></div><div class="ttdeci">MEMSPACE FRESULT f_getcwd(TCHAR *buff, UINT len)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l03919">ff.c:3919</a></div></div>
<div class="ttc" id="posix_8c_html_a8705d74fe77c1b23824074ecd14be1c7"><div class="ttname"><a href="posix_8c.html#a8705d74fe77c1b23824074ecd14be1c7">fsetpos</a></div><div class="ttdeci">MEMSPACE int fsetpos(FILE *stream, size_t *pos)</div><div class="ttdoc">POSIX set position of file stream. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00571">posix.c:571</a></div></div>
<div class="ttc" id="posix_8c_html_a6411298bb01166960f5a0378ac0fdb82"><div class="ttname"><a href="posix_8c.html#a6411298bb01166960f5a0378ac0fdb82">getcwd</a></div><div class="ttdeci">MEMSPACE char * getcwd(char *pathname, int len)</div><div class="ttdoc">POSIX get current working directory. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01596">posix.c:1596</a></div></div>
<div class="ttc" id="posix_8h_html_a37117409538ffeec47002d6580e4b703"><div class="ttname"><a href="posix_8h.html#a37117409538ffeec47002d6580e4b703">__SERR</a></div><div class="ttdeci">#define __SERR</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00164">posix.h:164</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa6d2c32b1730ea078f2802b34b1258a4c"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa6d2c32b1730ea078f2802b34b1258a4c">EIO</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00068">posix.h:68</a></div></div>
<div class="ttc" id="cal__dex_8c_html_a7577d49f3bfffb1cf048eef843177784"><div class="ttname"><a href="cal__dex_8c.html#a7577d49f3bfffb1cf048eef843177784">L</a></div><div class="ttdeci">#define L(x)</div><div class="ttdef"><b>Definition:</b> <a href="cal__dex_8c_source.html#l00054">cal_dex.c:54</a></div></div>
<div class="ttc" id="struct__printf__t_html_a872716fd701166cd57bd3fffb7b77706"><div class="ttname"><a href="struct__printf__t.html#a872716fd701166cd57bd3fffb7b77706">_printf_t::sent</a></div><div class="ttdeci">int sent</div><div class="ttdef"><b>Definition:</b> <a href="mathio_8h_source.html#l00086">mathio.h:86</a></div></div>
<div class="ttc" id="posix_8h_html_a79826a1c733e4f67843256d34ad64352"><div class="ttname"><a href="posix_8h.html#a79826a1c733e4f67843256d34ad64352">_FDEV_SETUP_READ</a></div><div class="ttdeci">#define _FDEV_SETUP_READ</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00298">posix.h:298</a></div></div>
<div class="ttc" id="structtm_html_a4d098a9a5c03a00b2ee61e10851de81e"><div class="ttname"><a href="structtm.html#a4d098a9a5c03a00b2ee61e10851de81e">tm::tm_sec</a></div><div class="ttdeci">int tm_sec</div><div class="ttdef"><b>Definition:</b> <a href="time_8h_source.html#l00043">time.h:43</a></div></div>
<div class="ttc" id="posix_8c_html_abef70bf7a4af8a1f4998db0035c51781"><div class="ttname"><a href="posix_8c.html#abef70bf7a4af8a1f4998db0035c51781">stat</a></div><div class="ttdeci">MEMSPACE int stat(char *name, struct stat *buf)</div><div class="ttdoc">POSIX stat - get file status of named file. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01344">posix.c:1344</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa996f6f948b613bccc738ff8517413c1a"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa996f6f948b613bccc738ff8517413c1a">ENOENT</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00065">posix.h:65</a></div></div>
<div class="ttc" id="system_8c_html_a61f06ee340417c629633142e0a5db288"><div class="ttname"><a href="system_8c.html#a61f06ee340417c629633142e0a5db288">safefree</a></div><div class="ttdeci">MEMSPACE void safefree(void *p)</div><div class="ttdoc">Safe free - Only free a pointer if it is in malloc memory range. We want to try to catch frees of sta...</div><div class="ttdef"><b>Definition:</b> <a href="system_8c_source.html#l00165">system.c:165</a></div></div>
<div class="ttc" id="posix_8c_html_a39eea0b104438afa9ca0500c2e8d6887"><div class="ttname"><a href="posix_8c.html#a39eea0b104438afa9ca0500c2e8d6887">mctime</a></div><div class="ttdeci">MEMSPACE char * mctime(time_t timev)</div><div class="ttdoc">Display Ascii formatted time from timev seconds NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01323">posix.c:1323</a></div></div>
<div class="ttc" id="posix_8c_html_a76ebfe24a40210e5935998c1fa86d3a0"><div class="ttname"><a href="posix_8c.html#a76ebfe24a40210e5935998c1fa86d3a0">sys_errlist</a></div><div class="ttdeci">const char * sys_errlist[]</div><div class="ttdoc">POSIX error messages for each errno value. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00144">posix.c:144</a></div></div>
<div class="ttc" id="posix_8h_html_ac04f5faa8e86a4ce4ae084d85386af40"><div class="ttname"><a href="posix_8h.html#ac04f5faa8e86a4ce4ae084d85386af40">fdev_get_udata</a></div><div class="ttdeci">#define fdev_get_udata(stream)</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00292">posix.h:292</a></div></div>
<div class="ttc" id="posix_8c_html_a65ef3ba32c47b84f7727e36de68ef86c"><div class="ttname"><a href="posix_8c.html#a65ef3ba32c47b84f7727e36de68ef86c">getchar</a></div><div class="ttdeci">MEMSPACE int getchar()</div><div class="ttdoc">functions normally defined as macros </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00336">posix.c:336</a></div></div>
<div class="ttc" id="ff_8c_html_a96ea1b2dd03a41635e07216b5002d1fa"><div class="ttname"><a href="ff_8c.html#a96ea1b2dd03a41635e07216b5002d1fa">f_sync</a></div><div class="ttdeci">MEMSPACE FRESULT f_sync(FIL *fp)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l03729">ff.c:3729</a></div></div>
<div class="ttc" id="posix_8c_html_aae2f027325f7e73c3aa5e7dc990bd90d"><div class="ttname"><a href="posix_8c.html#aae2f027325f7e73c3aa5e7dc990bd90d">__iob</a></div><div class="ttdeci">FILE * __iob[MAX_FILES]</div><div class="ttdoc">POSIX fileno to POSIX FILE stream table. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00139">posix.c:139</a></div></div>
<div class="ttc" id="structstat_html_a040e19c8b9766f841fde8786ce9297bf"><div class="ttname"><a href="structstat.html#a040e19c8b9766f841fde8786ce9297bf">stat::st_size</a></div><div class="ttdeci">off_t st_size</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00114">posix.h:114</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca62fce5cd9df008f8fc85f99706bda5f1">FR_OK</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00221">ff.h:221</a></div></div>
<div class="ttc" id="posix_8c_html_a35e6a58f44d4651951ecfeb97f369884"><div class="ttname"><a href="posix_8c.html#a35e6a58f44d4651951ecfeb97f369884">rewind</a></div><div class="ttdeci">MEMSPACE void rewind(FILE *stream)</div><div class="ttdoc">POSIX rewind file to the beginning. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00666">posix.c:666</a></div></div>
<div class="ttc" id="posix_8h_html"><div class="ttname"><a href="posix_8h.html">posix.h</a></div><div class="ttdoc">POSIX wrapper for FatFS. </div></div>
<div class="ttc" id="posix_8c_html_a19051b9081dfef221d9bf4583e935031"><div class="ttname"><a href="posix_8c.html#a19051b9081dfef221d9bf4583e935031">opendir</a></div><div class="ttdeci">DIR * opendir(const char *pathdir)</div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01736">posix.c:1736</a></div></div>
<div class="ttc" id="structtm_html_a3e7ca4e37f1abcaf56b8a916c38eb9fe"><div class="ttname"><a href="structtm.html#a3e7ca4e37f1abcaf56b8a916c38eb9fe">tm::tm_hour</a></div><div class="ttdeci">int tm_hour</div><div class="ttdef"><b>Definition:</b> <a href="time_8h_source.html#l00045">time.h:45</a></div></div>
<div class="ttc" id="posix_8h_html_a1aaa48b192a5dd3b6d7ee91fc98cd17d"><div class="ttname"><a href="posix_8h.html#a1aaa48b192a5dd3b6d7ee91fc98cd17d">S_IFREG</a></div><div class="ttdeci">#define S_IFREG</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00205">posix.h:205</a></div></div>
<div class="ttc" id="send_8c_html_aba7bc1797add20fe3efdf37ced1182c5"><div class="ttname"><a href="send_8c.html#aba7bc1797add20fe3efdf37ced1182c5">uint8_t</a></div><div class="ttdeci">unsigned char uint8_t</div><div class="ttdef"><b>Definition:</b> <a href="send_8c_source.html#l00017">send.c:17</a></div></div>
<div class="ttc" id="posix_8c_html_ac37bff9f639fa95401b71839bbabd9a0"><div class="ttname"><a href="posix_8c.html#ac37bff9f639fa95401b71839bbabd9a0">ferror</a></div><div class="ttdeci">MEMSPACE int ferror(FILE *stream)</div><div class="ttdoc">ferror reports if the stream has an error flag set </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01798">posix.c:1798</a></div></div>
<div class="ttc" id="ff_8c_html_a99a8f0eee3b847f8148f4a3ce30b7dc1"><div class="ttname"><a href="ff_8c.html#a99a8f0eee3b847f8148f4a3ce30b7dc1">f_chdir</a></div><div class="ttdeci">MEMSPACE FRESULT f_chdir(const TCHAR *path)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l03866">ff.c:3866</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44caf56a76a86602cbdeb2c4f3d00cfad21c"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44caf56a76a86602cbdeb2c4f3d00cfad21c">FR_NOT_ENOUGH_CORE</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00238">ff.h:238</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca3b89faeceab64db277d0fcdeaaa315d6"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca3b89faeceab64db277d0fcdeaaa315d6">FR_INVALID_PARAMETER</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00240">ff.h:240</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44cac9894bed3e8632ede8d2712235fa8e45"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cac9894bed3e8632ede8d2712235fa8e45">FR_NOT_READY</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00224">ff.h:224</a></div></div>
<div class="ttc" id="struct____file_html_a8d11df8679502efee09740f97d7c277b"><div class="ttname"><a href="struct____file.html#a8d11df8679502efee09740f97d7c277b">__file::flags</a></div><div class="ttdeci">uint8_t flags</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00159">posix.h:159</a></div></div>
<div class="ttc" id="ff_8h_html_a3a9db44e978ed6c13b641e092d4cd7d3"><div class="ttname"><a href="ff_8h.html#a3a9db44e978ed6c13b641e092d4cd7d3">AM_DIR</a></div><div class="ttdeci">#define AM_DIR</div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00358">ff.h:358</a></div></div>
<div class="ttc" id="struct__printf__t_html_a3ef8eb0143b93d4446b04c6ce9313be7"><div class="ttname"><a href="struct__printf__t.html#a3ef8eb0143b93d4446b04c6ce9313be7">_printf_t::put</a></div><div class="ttdeci">void(* put)(struct _printf_t *, char)</div><div class="ttdef"><b>Definition:</b> <a href="mathio_8h_source.html#l00083">mathio.h:83</a></div></div>
<div class="ttc" id="structstat_html_a77e235090f8cb6897f1c0ce65689006b"><div class="ttname"><a href="structstat.html#a77e235090f8cb6897f1c0ce65689006b">stat::st_mtime</a></div><div class="ttdeci">time_t st_mtime</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00118">posix.h:118</a></div></div>
<div class="ttc" id="posix_8h_html_a11b644a8526139c4cc1850dac1271ced"><div class="ttname"><a href="posix_8h.html#a11b644a8526139c4cc1850dac1271ced">O_WRONLY</a></div><div class="ttdeci">#define O_WRONLY</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00188">posix.h:188</a></div></div>
<div class="ttc" id="posix_8h_html_abb0586253488ee61072b73557eeb873b"><div class="ttname"><a href="posix_8h.html#abb0586253488ee61072b73557eeb873b">O_RDWR</a></div><div class="ttdeci">#define O_RDWR</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00189">posix.h:189</a></div></div>
<div class="ttc" id="ff_8c_html_a032d09ef6df748b4ce23206d80ef67c5"><div class="ttname"><a href="ff_8c.html#a032d09ef6df748b4ce23206d80ef67c5">f_truncate</a></div><div class="ttdeci">MEMSPACE FRESULT f_truncate(FIL *fp)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04475">ff.c:4475</a></div></div>
<div class="ttc" id="posix_8c_html_a2c01fe0e0aa550b2a8b4dcc326983b57"><div class="ttname"><a href="posix_8c.html#a2c01fe0e0aa550b2a8b4dcc326983b57">fileno_to_stream</a></div><div class="ttdeci">MEMSPACE FILE * fileno_to_stream(int fileno)</div><div class="ttdoc">Convert POSIX fileno to POSIX FILE stream pointer. NOT POSIX. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l00754">posix.c:754</a></div></div>
<div class="ttc" id="posix_8c_html_ae5badb2fbda49f0741042e68c364532b"><div class="ttname"><a href="posix_8c.html#ae5badb2fbda49f0741042e68c364532b">_dp</a></div><div class="ttdeci">static DIR _dp</div><div class="ttdoc">POSIX opendir. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01735">posix.c:1735</a></div></div>
<div class="ttc" id="structstat_html_a4a8708a3d18be60ee7b2f06c4cab0c70"><div class="ttname"><a href="structstat.html#a4a8708a3d18be60ee7b2f06c4cab0c70">stat::st_uid</a></div><div class="ttdeci">uid_t st_uid</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00111">posix.h:111</a></div></div>
<div class="ttc" id="posix_8c_html_a2b4462e4e183cf38f0e7c3674be496e2"><div class="ttname"><a href="posix_8c.html#a2b4462e4e183cf38f0e7c3674be496e2">_fprintf_putc</a></div><div class="ttdeci">static MEMSPACE void _fprintf_putc(struct _printf_t *p, char ch)</div><div class="ttdoc">fprintf character write function </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l02468">posix.c:2468</a></div></div>
<div class="ttc" id="ff_8c_html_a3bff54412627eb9cf8951ec88a464d1c"><div class="ttname"><a href="ff_8c.html#a3bff54412627eb9cf8951ec88a464d1c">f_mount</a></div><div class="ttdeci">MEMSPACE FRESULT f_mount(FATFS *fs, const TCHAR *path, BYTE opt)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l03255">ff.c:3255</a></div></div>
<div class="ttc" id="system_8c_html_a65ca18fba3d6cdb9ce8ca8040a96e0c5"><div class="ttname"><a href="system_8c.html#a65ca18fba3d6cdb9ce8ca8040a96e0c5">safecalloc</a></div><div class="ttdeci">MEMSPACE void * safecalloc(size_t nmemb, size_t size)</div><div class="ttdoc">Safe Calloc - Display Error message if Calloc fails. </div><div class="ttdef"><b>Definition:</b> <a href="system_8c_source.html#l00128">system.c:128</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca086154b5fee763f28c49fd0e2c1cb463"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca086154b5fee763f28c49fd0e2c1cb463">FR_NO_FILESYSTEM</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00234">ff.h:234</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44ca3dec4eba481cdf5e99d7cd6009e6dcf8"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44ca3dec4eba481cdf5e99d7cd6009e6dcf8">FR_INVALID_OBJECT</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00230">ff.h:230</a></div></div>
<div class="ttc" id="posix_8h_html_a3746cdc5aac871e6f6504fbcbd29ef1d"><div class="ttname"><a href="posix_8h.html#a3746cdc5aac871e6f6504fbcbd29ef1d">S_ISDIR</a></div><div class="ttdeci">#define S_ISDIR(mode)</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00215">posix.h:215</a></div></div>
<div class="ttc" id="ff_8c_html_ae69d637bea36b3aa303fb8265b2dd573"><div class="ttname"><a href="ff_8c.html#ae69d637bea36b3aa303fb8265b2dd573">f_utime</a></div><div class="ttdeci">MEMSPACE FRESULT f_utime(const TCHAR *path, const FILINFO *fno)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l04869">ff.c:4869</a></div></div>
<div class="ttc" id="fatfs_8h_html"><div class="ttname"><a href="fatfs_8h.html">fatfs.h</a></div></div>
<div class="ttc" id="posix_8h_html_a910f0d9b3aff8a868393ce38fe91cc7d"><div class="ttname"><a href="posix_8h.html#a910f0d9b3aff8a868393ce38fe91cc7d">__SMALLOC</a></div><div class="ttdeci">#define __SMALLOC</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00167">posix.h:167</a></div></div>
<div class="ttc" id="posix_8h_html_a4c8d0b76b470ba65a43ca46a88320f39"><div class="ttname"><a href="posix_8h.html#a4c8d0b76b470ba65a43ca46a88320f39">SEEK_CUR</a></div><div class="ttdeci">#define SEEK_CUR</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00252">posix.h:252</a></div></div>
<div class="ttc" id="posix_8c_html_ada8cc8f9394cf54db8f338838a9fa7ce"><div class="ttname"><a href="posix_8c.html#ada8cc8f9394cf54db8f338838a9fa7ce">rename</a></div><div class="ttdeci">MEMSPACE int rename(const char *oldpath, const char *newpath)</div><div class="ttdoc">POSIX rename a file by name. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01648">posix.c:1648</a></div></div>
<div class="ttc" id="structstat_html_ab864f16f436cec370f0ced585d897698"><div class="ttname"><a href="structstat.html#ab864f16f436cec370f0ced585d897698">stat::st_gid</a></div><div class="ttdeci">gid_t st_gid</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00112">posix.h:112</a></div></div>
<div class="ttc" id="struct____file_html_aff4a1ca8b6a12460812928afae81248d"><div class="ttname"><a href="struct____file.html#aff4a1ca8b6a12460812928afae81248d">__file::size</a></div><div class="ttdeci">int size</div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00175">posix.h:175</a></div></div>
<div class="ttc" id="struct__printf__t_html"><div class="ttname"><a href="struct__printf__t.html">_printf_t</a></div><div class="ttdoc">undefine any potential macro version of these functions </div><div class="ttdef"><b>Definition:</b> <a href="mathio_8h_source.html#l00081">mathio.h:81</a></div></div>
<div class="ttc" id="ff_8c_html_a52ff3c14f48a7bd12b5d8fcef84787ea"><div class="ttname"><a href="ff_8c.html#a52ff3c14f48a7bd12b5d8fcef84787ea">f_mkfs</a></div><div class="ttdeci">MEMSPACE FRESULT f_mkfs(const TCHAR *path, BYTE opt, DWORD au, void *work, UINT len)</div><div class="ttdef"><b>Definition:</b> <a href="ff_8c_source.html#l05296">ff.c:5296</a></div></div>
<div class="ttc" id="posix_8c_html_ae03e9f4fe4bf5e64a70fd186d532a5c8"><div class="ttname"><a href="posix_8c.html#ae03e9f4fe4bf5e64a70fd186d532a5c8">strerror</a></div><div class="ttdeci">MEMSPACE char WEAK_ATR * strerror(int errnum)</div><div class="ttdoc">POSIX strerror() - convert POSIX errno to text with user message. </div><div class="ttdef"><b>Definition:</b> <a href="posix_8c_source.html#l01840">posix.c:1840</a></div></div>
<div class="ttc" id="ff_8h_html_a49d0171ecbd362cda5680a0d360db44cac3afbb423b1d4497229416812aff383b"><div class="ttname"><a href="ff_8h.html#a49d0171ecbd362cda5680a0d360db44cac3afbb423b1d4497229416812aff383b">FR_WRITE_PROTECTED</a></div><div class="ttdef"><b>Definition:</b> <a href="ff_8h_source.html#l00231">ff.h:231</a></div></div>
<div class="ttc" id="posix_8h_html_ac29db18b9f0e7e7d5c43d558ccffea6aa952ba8aa5afef31b7893ed91ae13a56c"><div class="ttname"><a href="posix_8h.html#ac29db18b9f0e7e7d5c43d558ccffea6aa952ba8aa5afef31b7893ed91ae13a56c">EBADMSG</a></div><div class="ttdef"><b>Definition:</b> <a href="posix_8h_source.html#l00098">posix.h:98</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Wed Jan 31 2018 21:22:16 for ESP8266 ILI9341 display support code with printf sources, wire-frame viewer and custom fonts by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
